# HG changeset patch # User John W. Eaton # Date 1395332933 14400 # Node ID ebd063b7b1c67aa83d349cd59d5679ecf5bb6684 # Parent f57148641869176912a3f25c377380e346260365# Parent 756e906bdfdab7f87761e546924e7866205c84f5 maint: Periodic merge of stable to gui-release. diff -r f57148641869 -r ebd063b7b1c6 doc/interpreter/contributors.in --- a/doc/interpreter/contributors.in Sat Mar 15 16:29:46 2014 -0700 +++ b/doc/interpreter/contributors.in Thu Mar 20 12:28:53 2014 -0400 @@ -5,6 +5,7 @@ Joel Andersson Muthiah Annamalai Markus Appel +Branden Archer Marco Atzeri Shai Ayal Roger Banks diff -r f57148641869 -r ebd063b7b1c6 libgui/src/m-editor/file-editor.cc --- a/libgui/src/m-editor/file-editor.cc Sat Mar 15 16:29:46 2014 -0700 +++ b/libgui/src/m-editor/file-editor.cc Thu Mar 20 12:28:53 2014 -0400 @@ -965,8 +965,10 @@ // FIXME: what was the intended purpose of this unused variable? // QStyle *editor_style = QApplication::style (); - _menu_bar = new QMenuBar (editor_widget); +#if defined (Q_OS_MAC) + _menu_bar->setNativeMenuBar (false); +#endif _tool_bar = new QToolBar (editor_widget); _tool_bar->setMovable (true); _tab_widget = new QTabWidget (editor_widget); diff -r f57148641869 -r ebd063b7b1c6 libgui/src/main-window.cc --- a/libgui/src/main-window.cc Sat Mar 15 16:29:46 2014 -0700 +++ b/libgui/src/main-window.cc Thu Mar 20 12:28:53 2014 -0400 @@ -2013,8 +2013,15 @@ QMessageBox gui_info_dialog (QMessageBox::Warning, tr ("Experimental GUI Info"), - gui_info, QMessageBox::Close); - + QString (gui_info.length (),' '), QMessageBox::Close); + QGridLayout *box_layout + = qobject_cast(gui_info_dialog.layout()); + if (box_layout) + { + QTextEdit *text = new QTextEdit(gui_info); + text->setReadOnly(true); + box_layout->addWidget(text, 0, 1); + } gui_info_dialog.exec (); } diff -r f57148641869 -r ebd063b7b1c6 libgui/src/octave-gui.cc --- a/libgui/src/octave-gui.cc Sat Mar 15 16:29:46 2014 -0700 +++ b/libgui/src/octave-gui.cc Thu Mar 20 12:28:53 2014 -0400 @@ -85,28 +85,37 @@ int m_result; }; +#if ! defined (__WIN32__) || defined (__CYGWIN__) +static int fdstderr = -1; +#endif // Custom message handler for filtering some messages from Qt. -void message_handler (QtMsgType type, const char *msg) +void +message_handler (QtMsgType type, const char *msg) { +#if ! defined (__WIN32__) || defined (__CYGWIN__) + static FILE *errstream = fdopen (fdstderr, "a+"); +#else + static FILE *errstream = stderr; +#endif + switch (type) { case QtDebugMsg: - if (strncmp (msg, "QFileSystemWatcher: skipping native engine",42) != 0) - std::cerr << "Debug: " << msg << std::endl; + gnulib::fprintf (errstream, "Debug: %s\n", msg); break; case QtWarningMsg: - std::cerr << "Warning: " << msg << std::endl; + gnulib::fprintf (errstream, "Warning: %s\n", msg); break; case QtCriticalMsg: - std::cerr << "Critical: " << msg << std::endl; + gnulib::fprintf (errstream, "Critical: %s\n", msg); break; case QtFatalMsg: - std::cerr << "Fatal: " << msg << std::endl; + gnulib::fprintf (errstream, "Fatal: %s\n", msg); abort (); default: @@ -122,6 +131,13 @@ { octave_thread_manager::block_interrupt_signal (); +#if ! defined (__WIN32__) || defined (__CYGWIN__) + // Store the file descriptor associated with the STDERR stream. Send + // Qt messages there instead of to the STDERR stream that will be + // associated with the GUI command window. + fdstderr = gnulib::dup (STDERR_FILENO); +#endif + qInstallMsgHandler (message_handler); if (start_gui) diff -r f57148641869 -r ebd063b7b1c6 libinterp/corefcn/rand.cc --- a/libinterp/corefcn/rand.cc Sat Mar 15 16:29:46 2014 -0700 +++ b/libinterp/corefcn/rand.cc Thu Mar 20 12:28:53 2014 -0400 @@ -851,6 +851,11 @@ %! ## Test fixed seed %! randg ("seed", 1); %! assert (randg (100, 1, 6), [89.40208435058594 101.4734725952148 103.4020004272461 93.62763214111328 88.33104705810547 88.1871337890625], 1e-4); +%!test +%! ## Test out-of-bounds values produce NaN w/old-style generators & floats +%! randg ("seed", 1); +%! result = randg ([-2 Inf], "single"); +%! assert (result, single ([NaN NaN])); %!test %! if (__random_statistical_tests__) diff -r f57148641869 -r ebd063b7b1c6 libinterp/dldfcn/__magick_read__.cc --- a/libinterp/dldfcn/__magick_read__.cc Sat Mar 15 16:29:46 2014 -0700 +++ b/libinterp/dldfcn/__magick_read__.cc Thu Mar 20 12:28:53 2014 -0400 @@ -224,6 +224,7 @@ octave_idx_type idx = 0; for (octave_idx_type frame = 0; frame < nFrames; frame++) { + OCTAVE_QUIT; imvec[frameidx(frame)].getConstPixels (col_start, row_start, col_cache, row_cache); @@ -428,6 +429,7 @@ octave_idx_type idx = 0; for (octave_idx_type frame = 0; frame < nFrames; frame++) { + OCTAVE_QUIT; const Magick::PixelPacket *pix = imvec[frameidx(frame)].getConstPixels (col_start, row_start, col_cache, row_cache); @@ -455,6 +457,7 @@ octave_idx_type idx = 0; for (octave_idx_type frame = 0; frame < nFrames; frame++) { + OCTAVE_QUIT; const Magick::PixelPacket *pix = imvec[frameidx(frame)].getConstPixels (col_start, row_start, col_cache, row_cache); @@ -484,6 +487,7 @@ const octave_idx_type frame_stride = colour_stride * 3; for (octave_idx_type frame = 0; frame < nFrames; frame++) { + OCTAVE_QUIT; const Magick::PixelPacket *pix = imvec[frameidx(frame)].getConstPixels (col_start, row_start, col_cache, row_cache); @@ -525,6 +529,7 @@ octave_idx_type a_idx = 0; for (octave_idx_type frame = 0; frame < nFrames; frame++) { + OCTAVE_QUIT; const Magick::PixelPacket *pix = imvec[frameidx(frame)].getConstPixels (col_start, row_start, col_cache, row_cache); @@ -561,6 +566,7 @@ const octave_idx_type frame_stride = colour_stride * 4; for (octave_idx_type frame = 0; frame < nFrames; frame++) { + OCTAVE_QUIT; const Magick::PixelPacket *pix = imvec[frameidx(frame)].getConstPixels (col_start, row_start, col_cache, row_cache); @@ -604,6 +610,7 @@ octave_idx_type a_idx = 0; for (octave_idx_type frame = 0; frame < nFrames; frame++) { + OCTAVE_QUIT; const Magick::PixelPacket *pix = imvec[frameidx(frame)].getConstPixels (col_start, row_start, col_cache, row_cache); @@ -922,6 +929,7 @@ for (octave_idx_type frame = 0; frame < nFrames; frame++) { + OCTAVE_QUIT; Magick::Image m_img = init_enconde_image (nCols, nRows, bitdepth, Magick::PaletteType, Magick::PseudoClass); @@ -977,6 +985,7 @@ octave_idx_type img_idx = 0; for (octave_idx_type frame = 0; frame < nFrames; frame++) { + OCTAVE_QUIT; // For some reason, we can't set the type to Magick::BilevelType or // the output image will be black, changing to white has no effect. // However, this will still work fine and a binary image will be @@ -1071,6 +1080,7 @@ { for (octave_idx_type frame = 0; frame < nFrames; frame++) { + OCTAVE_QUIT; Magick::Image m_img = init_enconde_image (nCols, nRows, bitdepth, type, Magick::DirectClass); @@ -1100,6 +1110,7 @@ { for (octave_idx_type frame = 0; frame < nFrames; frame++) { + OCTAVE_QUIT; Magick::Image m_img = init_enconde_image (nCols, nRows, bitdepth, type, Magick::DirectClass); @@ -1134,6 +1145,7 @@ const octave_idx_type B_offset = nCols * nRows * 2; for (octave_idx_type frame = 0; frame < nFrames; frame++) { + OCTAVE_QUIT; Magick::Image m_img = init_enconde_image (nCols, nRows, bitdepth, type, Magick::DirectClass); @@ -1168,6 +1180,7 @@ const octave_idx_type B_offset = nCols * nRows * 2; for (octave_idx_type frame = 0; frame < nFrames; frame++) { + OCTAVE_QUIT; Magick::Image m_img = init_enconde_image (nCols, nRows, bitdepth, type, Magick::DirectClass); @@ -1205,6 +1218,7 @@ const octave_idx_type K_offset = nCols * nRows * 3; for (octave_idx_type frame = 0; frame < nFrames; frame++) { + OCTAVE_QUIT; Magick::Image m_img = init_enconde_image (nCols, nRows, bitdepth, type, Magick::DirectClass); @@ -1241,6 +1255,7 @@ const octave_idx_type K_offset = nCols * nRows * 3; for (octave_idx_type frame = 0; frame < nFrames; frame++) { + OCTAVE_QUIT; Magick::Image m_img = init_enconde_image (nCols, nRows, bitdepth, type, Magick::DirectClass); @@ -1880,6 +1895,7 @@ for (octave_idx_type frame = 0; frame < nFrames; frame++) { + OCTAVE_QUIT; octave_scalar_map info_frame (template_info); const Magick::Image img = imvec[frame]; diff -r f57148641869 -r ebd063b7b1c6 liboctave/cruft/misc/r1mach.f --- a/liboctave/cruft/misc/r1mach.f Sat Mar 15 16:29:46 2014 -0700 +++ b/liboctave/cruft/misc/r1mach.f Thu Mar 20 12:28:53 2014 -0400 @@ -1,8 +1,8 @@ - double precision function r1mach (i) + real function r1mach (i) integer i logical init - double precision rmach(5) - double precision slamch + real rmach(5) + real slamch external slamch save init, rmach data init /.false./ @@ -20,5 +20,5 @@ 999 write (*, 1999) i 1999 format (' r1mach - i out of bounds', i10) call xstopx (' ') - d1mach = 0 + r1mach = 0 end diff -r f57148641869 -r ebd063b7b1c6 liboctave/numeric/oct-rand.cc --- a/liboctave/numeric/oct-rand.cc Sat Mar 15 16:29:46 2014 -0700 +++ b/liboctave/numeric/oct-rand.cc Thu Mar 20 12:28:53 2014 -0400 @@ -455,7 +455,7 @@ case gamma_dist: if (da <= 0.0 || ! xfinite (a)) - retval = octave_NaN; + dretval = octave_NaN; else F77_FUNC (dgengam, DGENGAM) (1.0, da, dretval); break; diff -r f57148641869 -r ebd063b7b1c6 scripts/image/imagesc.m --- a/scripts/image/imagesc.m Sat Mar 15 16:29:46 2014 -0700 +++ b/scripts/image/imagesc.m Thu Mar 20 12:28:53 2014 -0400 @@ -100,6 +100,8 @@ endif if (do_new && ! ishold (hax)) + ## Turn off axis equal which is set by image() call + axis ("normal"); ## use given climits or guess them from the matrix if (numel (climits) == 2 && climits(1) <= climits(2)) set (hax, "clim", climits); diff -r f57148641869 -r ebd063b7b1c6 scripts/statistics/tests/sign_test.m --- a/scripts/statistics/tests/sign_test.m Sat Mar 15 16:29:46 2014 -0700 +++ b/scripts/statistics/tests/sign_test.m Thu Mar 20 12:28:53 2014 -0400 @@ -57,7 +57,7 @@ y = reshape (y, 1, n); n = sum (x != y); b = sum (x > y); - cdf = binomial_cdf (b, n, 1/2); + cdf = binocdf (b, n, 1/2); if (nargin == 2) alt = "!=";