changeset 18609:ebd063b7b1c6 gui-release

maint: Periodic merge of stable to gui-release.
author John W. Eaton <jwe@octave.org>
date Thu, 20 Mar 2014 12:28:53 -0400
parents f57148641869 (current diff) 756e906bdfda (diff)
children cd83730e5e38 56209bab4213
files doc/interpreter/contributors.in libgui/src/m-editor/file-editor.cc libgui/src/main-window.cc libgui/src/octave-gui.cc
diffstat 10 files changed, 64 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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);
--- 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<QGridLayout *>(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 ();
 }
 
--- 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)
--- 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__)
--- 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];
 
--- 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
--- 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;
--- 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);
--- 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  = "!=";