changeset 20228:88efded31037

maint: Periodic merge of stable to default.
author John W. Eaton <jwe@octave.org>
date Thu, 14 May 2015 14:52:09 -0400
parents 64f817945783 (current diff) 5c2564643de4 (diff)
children ea5fdb2ae637
files libinterp/corefcn/strfns.cc libinterp/octave-value/ov-classdef.cc scripts/io/strread.m
diffstat 91 files changed, 320 insertions(+), 262 deletions(-) [+]
line wrap: on
line diff
--- a/doc/interpreter/external.txi	Thu May 14 08:55:05 2015 -0700
+++ b/doc/interpreter/external.txi	Thu May 14 14:52:09 2015 -0400
@@ -283,8 +283,7 @@
 
 @example
 @group
-dim_vector dv (2);
-dv(0) = 2; dv(1) = 3;  // 2 rows, 3 columns
+dim_vector dv (2, 3);  // 2 rows, 3 columns
 Matrix a (dv);
 @end group
 @end example
--- a/doc/interpreter/intro.txi	Thu May 14 08:55:05 2015 -0700
+++ b/doc/interpreter/intro.txi	Thu May 14 14:52:09 2015 -0400
@@ -26,10 +26,9 @@
 analysis, and for performing other numerical experiments.  It may also
 be used as a batch-oriented language for automated data processing.
 
-Until recently GNU Octave provided a command-line interface with
-graphical results displayed in separate windows.  The current version
-(version 3.8, released in late 2013) also provides, by default, a
-graphical user interface.
+Until recently GNU Octave provided a command-line interface only with
+graphical plots displayed in separate windows.  However, by default
+the current version runs with a graphical user interface.
 
 GNU Octave is freely redistributable software.  You may redistribute
 it and/or modify it under the terms of the GNU General Public License
@@ -52,12 +51,12 @@
 @section Running Octave
 
 On most systems, Octave is started with the shell command @samp{octave}.
-This, by default, starts the graphical user interface (GUI).  The central
-window in the GUI is the Octave command-line interface.  Octave displays
-an initial message and then a prompt indicating it is ready to accept
-input.  If you have chosen the traditional command-line interface only
-the command prompt appears.  In any case, you can immediately begin
-typing Octave commands.
+This starts the graphical user interface (GUI).  The central window in
+the GUI is the Octave command-line interface.  In this window Octave
+displays an initial message and then a prompt indicating it is ready to
+accept input.  If you have chosen the traditional command-line interface
+then only the command prompt appears in the same window that was running
+a shell.  In any case, you can immediately begin typing Octave commands.
 
 If you get into trouble, you can usually interrupt Octave by typing
 @kbd{Control-C} (written @kbd{C-c} for short).  @kbd{C-c} gets
@@ -67,7 +66,7 @@
 
 @cindex exiting octave
 @cindex quitting octave
-To exit Octave, type @kbd{quit}, or @kbd{exit} at the Octave prompt.
+To exit Octave, type @kbd{quit} or @kbd{exit} at the Octave prompt.
 
 On systems that support job control, you can suspend Octave by sending
 it a @code{SIGTSTP} signal, usually by typing @kbd{C-z}.
@@ -79,7 +78,7 @@
 before doing that, it might be helpful to give a sampling of some of its
 capabilities.
 
-If you are new to Octave, I recommend that you try these examples to
+If you are new to Octave, we recommend that you try these examples to
 begin learning Octave by using it.  Lines marked like so, @samp{octave:13>},
 are lines you type, ending each with a carriage return.  Octave will
 respond with an answer, or by displaying a graph.
@@ -356,12 +355,12 @@
 command.  For example,
 
 @example
-print -deps foo.eps
+print -dpdf foo.pdf
 @end example
 
 @noindent
-will create a file called @file{foo.eps} that contains a rendering of
-the current plot in Encapsulated PostScript format.  The command
+will create a file called @file{foo.pdf} that contains a rendering of
+the current plot in Portable Document Format.  The command
 
 @example
 help print
@@ -393,12 +392,12 @@
 file.
 
 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
+that you want to use.  The name of this 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}
-function.  This function is described in @ref{Getting Help}.
+function (described in @ref{Getting Help}).
 
 Once you know the name of the function you wish to use, you can get more
 help on the function by simply including the name as an argument to help.
@@ -413,7 +412,7 @@
 
 Octave sends output that is too long to fit on one screen through a
 pager like @code{less} or @code{more}.  Type a @key{RET} to advance one
-line, a @key{SPC} to advance one page, and @key{q} to exit the pager.
+line, a @key{SPC} to advance one page, and @key{q} to quit the pager.
 
 The part of Octave's help facility that allows you to read the complete
 text of the printed manual from within Octave normally uses a separate
@@ -445,7 +444,7 @@
 shell prompt appear in this font or form: @samp{octave --no-init-file}.
 Commands that you type at the Octave prompt sometimes appear in this font
 or form: @kbd{foo --bar --baz}.  Specific keys on your keyboard appear
-in this font or form: @key{ANY}.
+in this font or form: @key{RET}.
 
 @node Evaluation Notation
 @subsection Evaluation Notation
@@ -552,6 +551,9 @@
 The category---function, command, or whatever---is printed next to the
 right margin.
 @end iftex
+If there are multiple ways to invoke the function then each allowable
+form is listed.
+
 The description follows on succeeding lines, sometimes with examples.
 
 @menu
@@ -568,14 +570,25 @@
 The names used for the parameters are also used in the body of the
 description.
 
+After all of the calling forms have been enumerated, the next line is a
+concise one-sentence summary of the function.
+
+After the summary there may be documentation on the inputs and outputs,
+examples of function usage, notes about the algorithm used, and references
+to related functions.
+
 Here is a description of an imaginary function @code{foo}:
 
+@need 4000
 @deftypefn  {Function File} {} foo (@var{x})
 @deftypefnx {Function File} {} foo (@var{x}, @var{y})
 @deftypefnx {Function File} {} foo (@var{x}, @var{y}, @dots{})
 The function @code{foo} subtracts @var{x} from @var{y}, then adds the
-remaining arguments to the result.  If @var{y} is not supplied, then the
-number 19 is used by default.
+remaining arguments to the result.
+
+If @var{y} is not supplied, then the number 19 is used by default.
+
+Example:
 
 @example
 @group
@@ -595,6 +608,7 @@
 @var{x} - @var{w} + @var{y} + @dots{}
 @end group
 @end example
+@b{See also:} bar
 @end deftypefn
 
 Any parameter whose name contains the name of a type (e.g.,
@@ -606,7 +620,7 @@
 beginning.
 
 Functions in Octave may be defined in several different ways.  The
-category name for functions may include another name that indicates the
+category name for functions may include a tag that indicates the
 way that the function is defined.  These additional tags include
 
 @table @asis
@@ -641,13 +655,30 @@
 except that the word `Function' is replaced by `Command'.  Commands are
 functions that may be called without surrounding their arguments in
 parentheses.  For example, here is the description for Octave's
-@code{cd} command:
+@code{diary} command:
+
+@need 4000
+@deftypefn  {Command} {} diary
+@deftypefnx {Command} {} diary on
+@deftypefnx {Command} {} diary off
+@deftypefnx {Command} {} diary @var{filename}
+Record a list of all commands @emph{and} the output they produce, mixed
+together just as they appear on the terminal.
+
+Valid options are:
 
-@deftypefn  {Command} {} cd dir
-@deftypefnx {Command} {} chdir dir
-Change the current working directory to @var{dir}.  For example,
-@kbd{cd ~/octave} changes the current working directory to
-@file{~/octave}.  If the directory does not exist, an error message is
-printed and the working directory is not changed.
+@table @asis
+@item on
+Start recording a session in a file called @file{diary} in the
+current working directory.
+
+@item off
+Stop recording the session in the diary file.
+
+@item @var{filename}
+Record the session in the file named @var{filename}.
+@end table
+
+With no arguments, @code{diary} toggles the current diary state.
+@seealso{history}
 @end deftypefn
-
--- a/libgui/Makefile.am	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/Makefile.am	Thu May 14 14:52:09 2015 -0400
@@ -126,7 +126,7 @@
 AM_V_lrelease = $(am__v_lrelease_$(V))
 am__v_lrelease_ = $(am__v_lrelease_$(AM_DEFAULT_VERBOSITY))
 am__v_lrelease_0 = -silent
-am__v_lrelease_1 = 
+am__v_lrelease_1 =
 
 %.qm: %.ts
 	$(AM_V_GEN)$(MKDIR_P) languages && \
--- a/libgui/graphics/Canvas.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/graphics/Canvas.cc	Thu May 14 14:52:09 2015 -0400
@@ -204,7 +204,7 @@
 
   redraw ();
 }
-  
+
 void
 Canvas::canvasToggleAxes (const graphics_handle& handle)
 {
@@ -785,11 +785,11 @@
   else if (m_mouseMode == TextMode)
     {
       gh_manager::auto_lock lock;
-      
-      graphics_object figObj = 
+
+      graphics_object figObj =
         gh_manager::get_object (m_handle).get_ancestor ("figure");
       if (figObj.valid_object ())
-        {          
+        {
           QWidget *w = qWidget ();
           if (w)
             {
@@ -802,7 +802,7 @@
               octave_value_list props = ovl("textbox", bb);
 
               annotation_dialog anno_dlg (w, props);
-            
+
               if (anno_dlg.exec () == QDialog::Accepted)
                 {
                   props = anno_dlg.get_properties ();
--- a/libgui/graphics/EditControl.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/graphics/EditControl.cc	Thu May 14 14:52:09 2015 -0400
@@ -217,7 +217,7 @@
   m_textChanged = true;
 }
 
-void 
+void
 EditControl::returnPressed (void)
 {
   QString txt = (m_multiLine
--- a/libgui/graphics/Figure.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/graphics/Figure.cc	Thu May 14 14:52:09 2015 -0400
@@ -135,7 +135,7 @@
   createFigureToolBarAndMenuBar ();
 
   int offset = 0;
-  if (fp.toolbar_is ("figure") || 
+  if (fp.toolbar_is ("figure") ||
       (fp.toolbar_is ("auto") && fp.menubar_is ("figure") &&
        ! hasUiControlChildren (fp)))
     offset += m_figureToolBar->sizeHint ().height ();
@@ -275,7 +275,7 @@
       std::string direction = zm.getfield ("Direction").string_value ();
 
       mode += " " + direction;
-    }    
+    }
 
   return mouse_mode_from_string (mode);
 }
@@ -835,7 +835,7 @@
 
   octave_link::copy_image_to_clipboard (file);
 }
-  
+
 void
 Figure::fileSaveFigureAs (void)
 {
@@ -936,7 +936,7 @@
   if (canvas)
     canvas->toggleAxes (m_handle);
 }
-  
+
 void
 Figure::toggleGrid (void)
 {
@@ -945,7 +945,7 @@
   if (canvas)
     canvas->toggleGrid (m_handle);
 }
-  
+
 void
 Figure::autoAxes (void)
 {
@@ -954,5 +954,5 @@
   if (canvas)
     canvas->autoAxes (m_handle);
 }
-  
+
 }; // namespace QtHandles
--- a/libgui/graphics/GLCanvas.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/graphics/GLCanvas.cc	Thu May 14 14:52:09 2015 -0400
@@ -38,8 +38,12 @@
 {
 
 GLCanvas::GLCanvas (QWidget* xparent, const graphics_handle& gh)
+#if defined (Q_OS_WIN32)
   : QGLWidget (QGLFormat (QGL::SampleBuffers | QGL::IndirectRendering),
                xparent), Canvas (gh)
+#else
+  : QGLWidget (QGLFormat (QGL::SampleBuffers), xparent), Canvas (gh)
+#endif
 {
   setFocusPolicy (Qt::ClickFocus);
 }
--- a/libgui/graphics/MouseModeActionGroup.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/graphics/MouseModeActionGroup.cc	Thu May 14 14:52:09 2015 -0400
@@ -39,11 +39,11 @@
   m_actions.append (new QAction (QIcon (":/images/rotate.png"),
                                  tr ("Rotate"), this));
   QAction *zoom_in = new QAction ("Z+", this);
-  zoom_in->setToolTip (tr ("Zoom In")); 
+  zoom_in->setToolTip (tr ("Zoom In"));
   m_actions.append (zoom_in);
 
   QAction *zoom_out = new QAction ("Z-", this);
-  zoom_out->setToolTip (tr ("Zoom Out")); 
+  zoom_out->setToolTip (tr ("Zoom Out"));
   m_actions.append (zoom_out);
 
   m_actions.append (new QAction (QIcon (":/images/pan.png"),
@@ -108,5 +108,5 @@
   if (mode == SelectMode)
     m_actions[SelectMode-1]->setChecked (false);
 }
-  
+
 };
--- a/libgui/graphics/annotation-dialog.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/graphics/annotation-dialog.cc	Thu May 14 14:52:09 2015 -0400
@@ -60,7 +60,7 @@
            this, SLOT (button_clicked (QAbstractButton *)));
 
 
-  connect (ui->edit_string, SIGNAL (textChanged (const QString&)), 
+  connect (ui->edit_string, SIGNAL (textChanged (const QString&)),
            this, SLOT (edit_string_changed (const QString&)));
 
   connect (ui->btn_color, SIGNAL (clicked ()),
@@ -127,7 +127,7 @@
   position(2) = ui->sb_width->value ();
   position(3) = ui->sb_height->value ();
   props.append (ovl ("textbox", position));
- 
+
   props.append (ovl ("string", ui->edit_string->text ().toStdString ()));
   props.append (ovl ("fitboxtotext", ui->cb_fit_box_to_text->isChecked() ? "on" : "off" ));
   props.append (ovl ("units", ui->cb_units->currentText ().toStdString () ));
@@ -179,14 +179,14 @@
       else if (name == "string")
         {
           // FIXME: handle if is array of strings ?
-          ui->edit_string->setText (props(2*i +1).string_value ().c_str ()); 
+          ui->edit_string->setText (props(2*i +1).string_value ().c_str ());
         }
       else if (name == "fitboxtotext")
         {
           ui->cb_fit_box_to_text->setChecked ( props(1*i +1).string_value () == "on" );
         }
       else if (name == "units")
-        { 
+        {
           ui->cb_units->setCurrentIndex ( ui->cb_units->findText(props(1*i +1).string_value ().c_str ()) );
         }
       else if (name == "horizontalalignment")
@@ -229,7 +229,7 @@
 
   edit_string_changed (ui->edit_string->text ());
 }
- 
+
 void
 annotation_dialog::edit_string_changed (const QString &str)
 {
@@ -243,7 +243,7 @@
   if (widg)
     {
       QColor color = widg->palette ().color (QPalette::Button);
- 
+
       color = QColorDialog::getColor(color, this);
 
       if (color.isValid ())
@@ -253,7 +253,7 @@
         QString css = QString ("background-color: %1; border: 1px solid %2;")
                 .arg (color.name ())
                 .arg ("#000000");
-  
+
         widg->setStyleSheet (css);
         widg->update ();
       }
--- a/libgui/graphics/annotation-dialog.h	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/graphics/annotation-dialog.h	Thu May 14 14:52:09 2015 -0400
@@ -36,7 +36,7 @@
 
 class annotation_dialog : public QDialog
 {
-  Q_OBJECT 
+  Q_OBJECT
 public:
   explicit annotation_dialog (QWidget * parent, const octave_value_list &pr);
   ~annotation_dialog ();
--- a/libgui/graphics/gl-select.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/graphics/gl-select.cc	Thu May 14 14:52:09 2015 -0400
@@ -225,7 +225,7 @@
 
   p4(0) = xd(0) - x_pix_size/2;
   p4(1) = yd(1) + y_pix_size/2;
-  
+
   glBegin (GL_QUADS);
   glVertex3dv (p1.data ());
   glVertex3dv (p2.data ());
--- a/libgui/graphics/module.mk	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/graphics/module.mk	Thu May 14 14:52:09 2015 -0400
@@ -7,7 +7,7 @@
   graphics/images/select.png \
   graphics/images/zoom-in.png \
   graphics/images/zoom-out.png \
-  $(octave_gui_graphics_UI) 
+  $(octave_gui_graphics_UI)
 
 octave_gui_MOC += \
   graphics/moc-annotation-dialog.cc \
--- a/libgui/kb-layouts/default.keytab	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/kb-layouts/default.keytab	Thu May 14 14:52:09 2015 -0400
@@ -67,10 +67,10 @@
 key Enter+NewLine : "\r\n"
 key Enter-NewLine : "\r"
 
-key Home        -AnyMod     -AppCuKeys           : "\E[H"  
-key End         -AnyMod     -AppCuKeys           : "\E[F"  
-key Home        -AnyMod     +AppCuKeys           : "\EOH"  
-key End         -AnyMod     +AppCuKeys           : "\EOF"  
+key Home        -AnyMod     -AppCuKeys           : "\E[H"
+key End         -AnyMod     -AppCuKeys           : "\E[F"
+key Home        -AnyMod     +AppCuKeys           : "\EOH"
+key End         -AnyMod     +AppCuKeys           : "\EOF"
 key Home        +AnyMod                          : "\E[1;*H"
 key End         +AnyMod                          : "\E[1;*F"
 
--- a/libgui/kb-layouts/linux.keytab	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/kb-layouts/linux.keytab	Thu May 14 14:52:09 2015 -0400
@@ -10,14 +10,14 @@
 # This configuration table allows to customize the
 # meaning of the keys.
 #
-# The syntax is that each entry has the form : 
+# The syntax is that each entry has the form :
 #
 #   "key" Keyname { ("+"|"-") Modename } ":" (String|Operation)
 #
 # Keynames are those defined in <qnamespace.h> with the
 # "Qt::Key_" removed. (We'd better insert the list here)
 #
-# Mode names are : 
+# Mode names are :
 #
 # - Shift
 # - Alt
@@ -26,7 +26,7 @@
 #   The VT100 emulation has two modes that can affect the
 #   sequences emitted by certain keys. These modes are
 #   under control of the client program.
-#   
+#
 # - Newline     : effects Return and Enter key.
 # - Application : effects Up and Down key.
 #
@@ -53,7 +53,7 @@
 # VT100 can add an extra \n after return.
 # The NewLine mode is set by an escape sequence.
 
-key Return-NewLine : "\r"  
+key Return-NewLine : "\r"
 key Return+NewLine : "\r\n"
 
 # Some desperately try to save the ^H.
@@ -86,31 +86,31 @@
 
 # linux functions keys F1-F5 differ from xterm
 
-key F1 : "\E[[A" 
-key F2 : "\E[[B" 
-key F3 : "\E[[C" 
-key F4 : "\E[[D" 
-key F5 : "\E[[E" 
+key F1 : "\E[[A"
+key F2 : "\E[[B"
+key F3 : "\E[[C"
+key F4 : "\E[[D"
+key F5 : "\E[[E"
 
-key F6     : "\E[17~" 
-key F7     : "\E[18~" 
-key F8     : "\E[19~" 
-key F9     : "\E[20~" 
-key F10    : "\E[21~" 
-key F11    : "\E[23~" 
-key F12    : "\E[24~" 
+key F6     : "\E[17~"
+key F7     : "\E[18~"
+key F8     : "\E[19~"
+key F9     : "\E[20~"
+key F10    : "\E[21~"
+key F11    : "\E[23~"
+key F12    : "\E[24~"
 
-key Home   : "\E[1~"  
-key End    : "\E[4~"  
+key Home   : "\E[1~"
+key End    : "\E[4~"
 
-key Prior -Shift : "\E[5~"  
-key Next  -Shift : "\E[6~"  
-key Insert-Shift : "\E[2~"  
+key Prior -Shift : "\E[5~"
+key Next  -Shift : "\E[6~"
+key Insert-Shift : "\E[2~"
 
 # Keypad-Enter. See comment on Return above.
 
 key Enter+NewLine : "\r\n"
-key Enter-NewLine : "\r"  
+key Enter-NewLine : "\r"
 
 key Space +Control : "\x00"
 
--- a/libgui/kb-layouts/vt420pc.keytab	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/kb-layouts/vt420pc.keytab	Thu May 14 14:52:09 2015 -0400
@@ -4,14 +4,14 @@
 #
 ################################################################
 #
-# The escape sequences emmited by the 
+# The escape sequences emmited by the
 # keys Shift+F1 to Shift+F12 might not fit your needs
 #
 ################# IMPORTANT NOTICE #############################
-# the key bindings (Kcontrol -> look and feel -> keybindgs) 
-# overrule the settings in this file. The key bindings might be 
+# the key bindings (Kcontrol -> look and feel -> keybindgs)
+# overrule the settings in this file. The key bindings might be
 # changed by the user WITHOUT notification of the maintainer of
-# the keytab file. Konsole will not work as expected by 
+# the keytab file. Konsole will not work as expected by
 # the maintainer of the keytab file.
 ################################################################
 #
@@ -24,14 +24,14 @@
 # This configuration table allows to customize the
 # meaning of the keys.
 #
-# The syntax is that each entry has the form : 
+# The syntax is that each entry has the form :
 #
 #   "key" Keyname { ("+"|"-") Modename } ":" (String|Operation)
 #
 # Keynames are those defined in <qnamespace.h> with the
 # "Qt::Key_" removed. (We'd better insert the list here)
 #
-# Mode names are : 
+# Mode names are :
 #
 # - Shift
 # - Alt
@@ -40,7 +40,7 @@
 #   The VT100 emulation has two modes that can affect the
 #   sequences emitted by certain keys. These modes are
 #   under control of the client program.
-#   
+#
 # - Newline     : effects Return and Enter key.
 # - Application : effects Up and Down key.
 #
@@ -68,7 +68,7 @@
 # VT100 can add an extra \n after return.
 # The NewLine mode is set by an escape sequence.
 
-key Return-NewLine : "\r"  
+key Return-NewLine : "\r"
 key Return+NewLine : "\r\n"
 
 # Some desperately try to save the ^H.
@@ -100,9 +100,9 @@
 key Right-Shift+Ansi-AppCuKeys : "\E[C"
 key Left -Shift+Ansi-AppCuKeys : "\E[D"
 
-# function keys 
+# function keys
 
-key F1 -Shift    : "\E[11~"  
+key F1 -Shift    : "\E[11~"
 key F2 -Shift    : "\E[12~"
 key F3 -Shift    : "\E[13~"
 key F4 -Shift    : "\E[14~"
@@ -113,7 +113,7 @@
 key F9 -Shift    : "\E[20~"
 key F10-Shift    : "\E[21~"
 key F11-Shift    : "\E[23~"
-key F12-Shift    : "\E[24~"  
+key F12-Shift    : "\E[24~"
 #
 # Shift F1-F12
 #
@@ -122,25 +122,25 @@
 key F3 +Shift    : "\E[13;2~"
 key F4 +Shift    : "\E[14;2~"
 key F5 +Shift    : "\E[15;2~"
-key F6 +Shift    : "\E[17;2~" 
-key F7 +Shift    : "\E[18;2~" 
-key F8 +Shift    : "\E[19;2~" 
-key F9 +Shift    : "\E[20;2~" 
-key F10+Shift    : "\E[21;2~" 
-key F11+Shift    : "\E[23;2~" 
-key F12+Shift    : "\E[24;2~" 
+key F6 +Shift    : "\E[17;2~"
+key F7 +Shift    : "\E[18;2~"
+key F8 +Shift    : "\E[19;2~"
+key F9 +Shift    : "\E[20;2~"
+key F10+Shift    : "\E[21;2~"
+key F11+Shift    : "\E[23;2~"
+key F12+Shift    : "\E[24;2~"
 
-key Home   : "\E[H"  
-key End    : "\E[F"  
+key Home   : "\E[H"
+key End    : "\E[F"
 
-key Prior -Shift : "\E[5~"  
-key Next  -Shift : "\E[6~"  
-key Insert-Shift : "\E[2~"  
+key Prior -Shift : "\E[5~"
+key Next  -Shift : "\E[6~"
+key Insert-Shift : "\E[2~"
 
 # Keypad-Enter. See comment on Return above.
 
 key Enter+NewLine : "\r\n"
-key Enter-NewLine : "\r"  
+key Enter-NewLine : "\r"
 
 key Space +Control : "\x00"
 
--- a/libgui/languages/ja_JP.ts	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/languages/ja_JP.ts	Thu May 14 14:52:09 2015 -0400
@@ -908,7 +908,7 @@
     <message>
         <location line="-318"/>
         <source>Octave Files (*.m);;All Files (*)</source>
-        <translation>Octave ファイル;;全てのファイル (*)</translation>
+        <translation>Octave ファイル (*.m);;全てのファイル (*)</translation>
     </message>
     <message>
         <location line="-40"/>
@@ -949,7 +949,7 @@
     <message>
         <location line="+14"/>
         <source>Print...</source>
-        <translation type="unfinished">陰圧...</translation>
+        <translation>プリント...</translation>
     </message>
     <message>
         <location line="+7"/>
@@ -1111,22 +1111,22 @@
     <message>
         <location line="+5"/>
         <source>Delete to Start of Word</source>
-        <translation type="unfinished"></translation>
+        <translation>単語の始まりまで削除</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Delete to End of Word</source>
-        <translation type="unfinished"></translation>
+        <translation>単語の終わりまで削除</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Delete to Start of Line</source>
-        <translation type="unfinished"></translation>
+        <translation>行の始まりまで削除</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Delete to End of Line</source>
-        <translation type="unfinished"></translation>
+        <translation>行末まで削除</translation>
     </message>
     <message>
         <location line="+5"/>
@@ -1141,22 +1141,22 @@
     <message>
         <location line="+5"/>
         <source>&amp;Show Completion List</source>
-        <translation type="unfinished"></translation>
+        <translation>補完リストの表示(&amp;s)</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>&amp;Format</source>
-        <translation>フォーマット (&amp;)</translation>
+        <translation>フォーマット (&amp;F)</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>&amp;Uppercase Selection</source>
-        <translation type="unfinished"></translation>
+        <translation>大文字を選択(&amp;U)</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>&amp;Lowercase Selection</source>
-        <translation type="unfinished"></translation>
+        <translation>小文字を選択(&amp;L)</translation>
     </message>
     <message>
         <location line="+12"/>
@@ -1236,7 +1236,7 @@
     <message>
         <location line="+4"/>
         <source>Show &amp;Indentation Guides</source>
-        <translation type="unfinished"></translation>
+        <translation>インデンテーションのガイドを表示 (&amp;I)</translation>
     </message>
     <message>
         <location line="+4"/>
@@ -2217,7 +2217,7 @@
     <message>
         <location line="-84"/>
         <source>Step In</source>
-        <translation type="unfinished"></translation>
+        <translation>ステップイン</translation>
     </message>
     <message>
         <location line="-152"/>
@@ -2232,7 +2232,7 @@
     <message>
         <location line="+153"/>
         <source>Step Out</source>
-        <translation type="unfinished"></translation>
+        <translation>ステップアウト</translation>
     </message>
     <message>
         <location line="+94"/>
@@ -2257,7 +2257,7 @@
     <message>
         <location line="+3"/>
         <source>Octave Developer Resources</source>
-        <translation type="unfinished">Octave 開発チーム</translation>
+        <translation>Octave 開発者のリソース</translation>
     </message>
     <message>
         <location line="+14"/>
@@ -3030,7 +3030,7 @@
         <location line="+489"/>
         <location filename="../src/ui-settings-dialog.h" line="+31"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as a difference from the default size), font style (&lt;b&gt;b&lt;/b&gt;old, &lt;b&gt;i&lt;/b&gt;talic, &lt;b&gt;u&lt;/b&gt;nderline), text color, and background color (for the latter, the color magenta (255,0,255) is a placeholder for the default background color).&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;フォントの種類, サイズ (既定のサイズからの差), フォントのスタイル (ボールド(&lt;b&gt;b&lt;/b&gt;), イタリック(&lt;b&gt;i&lt;/b&gt;), 下線(&lt;b&gt;u&lt;/b&gt;)), テキストの色, 背景色 (後者について, マジェンダ (255,0,255) は既定の背景色のプレースホルダー).&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
         <location line="+32"/>
@@ -3198,7 +3198,7 @@
         <location line="+106"/>
         <location filename="../src/ui-settings-dialog.h" line="+3"/>
         <source>Colors for variable attributes </source>
-        <translation type="unfinished"></translation>
+        <translation>変数の属性の色</translation>
     </message>
     <message>
         <location line="+34"/>
@@ -3210,13 +3210,13 @@
         <location line="+31"/>
         <location filename="../src/ui-settings-dialog.h" line="-18"/>
         <source>Select this option to prevent conflicts with readline shortcuts</source>
-        <translation type="unfinished"></translation>
+        <translation>Realineのショートカットとのコンフリクトを防ぐためにこのオプションを選択する</translation>
     </message>
     <message>
         <location line="+3"/>
         <location filename="../src/ui-settings-dialog.h" line="+2"/>
         <source>Disable global shortcuts when terminal window has focus</source>
-        <translation type="unfinished"></translation>
+        <translation>端末のウィンドウがフォーカスされている時グローバルなショートカットを無効にする</translation>
     </message>
     <message>
         <location line="+31"/>
@@ -3264,7 +3264,7 @@
         <location line="+10"/>
         <location filename="../src/ui-settings-dialog.h" line="-1"/>
         <source>Set 1 Default</source>
-        <translation type="unfinished"></translation>
+        <translation>セット 1 を既定にする</translation>
     </message>
     <message>
         <location line="+5"/>
@@ -3276,7 +3276,7 @@
         <location line="+5"/>
         <location filename="../src/ui-settings-dialog.h" line="-1"/>
         <source>Set 2 Default</source>
-        <translation type="unfinished"></translation>
+        <translation>セット 2 を既定にする</translation>
     </message>
     <message>
         <location line="+10"/>
@@ -3702,22 +3702,22 @@
     <message>
         <location line="+2"/>
         <source>Delete to Start of Word</source>
-        <translation type="unfinished"></translation>
+        <translation>単語の始まりまで削除</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Delete to End of Word</source>
-        <translation type="unfinished"></translation>
+        <translation>単語の終わりまで削除</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Delete to Start of Line</source>
-        <translation type="unfinished"></translation>
+        <translation>行の始まりまで削除</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Delete to End of Line</source>
-        <translation type="unfinished"></translation>
+        <translation>行末まで削除</translation>
     </message>
     <message>
         <location line="+2"/>
@@ -3757,12 +3757,12 @@
     <message>
         <location line="+2"/>
         <source>Uppercase Selection</source>
-        <translation type="unfinished"></translation>
+        <translation>選択部を大文字にする</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Lowercase Selection</source>
-        <translation type="unfinished"></translation>
+        <translation>選択部を小文字にする</translation>
     </message>
     <message>
         <location line="+4"/>
--- a/libgui/src/m-editor/find-dialog.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/src/m-editor/find-dialog.cc	Thu May 14 14:52:09 2015 -0400
@@ -297,7 +297,7 @@
              {
                int currpos = _edit_area->positionFromLineIndex(line,col);
                currpos -= (_search_line_edit->text ().length ());
-               if (currpos < 0) 
+               if (currpos < 0)
                  currpos = 0;
                _edit_area->lineIndexFromPosition(currpos, &line,&col);
              }
--- a/libgui/src/main-window.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/src/main-window.cc	Thu May 14 14:52:09 2015 -0400
@@ -1430,6 +1430,15 @@
       octave_link::post_event (this, &main_window::resize_command_window_callback);
 
       configure_shortcuts ();
+
+      // actions that should be available in floating dock widgets, too
+      QList<QAction *> action_list;
+      action_list.append (_copy_action);
+      action_list.append (_paste_action);
+      action_list.append (_select_all_action);
+      action_list.append (_undo_action);
+      emit add_actions_signal (action_list);  // signal for adding these actions
+
     }
 }
 
@@ -1760,7 +1769,7 @@
 
   edit_menu->addSeparator ();
 
-  _find_files_action 
+  _find_files_action
     = edit_menu->addAction (resource_manager::icon ("edit-find"),
                              tr ("Find Files..."));
 
@@ -1805,8 +1814,8 @@
 main_window::construct_debug_menu_item (const char *icon, const QString& item,
                                         const char *member)
 {
-  QAction *action = add_action (_debug_menu, 
-                                  resource_manager::icon (QString (icon)), 
+  QAction *action = add_action (_debug_menu,
+                                  resource_manager::icon (QString (icon)),
                                 item, member);
 
   action->setEnabled (false);
--- a/libgui/src/main-window.h	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/src/main-window.h	Thu May 14 14:52:09 2015 -0400
@@ -105,6 +105,8 @@
   void selectAll_signal (void);
   void undo_signal (void);
 
+  void add_actions_signal (QList <QAction *> action_list);
+
 public slots:
 
   void focus_changed (QWidget *w_old, QWidget *w_new);
--- a/libgui/src/octave-dock-widget.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/src/octave-dock-widget.cc	Thu May 14 14:52:09 2015 -0400
@@ -109,6 +109,9 @@
 
 #endif
 
+  // adding actions of the main window
+  connect (p, SIGNAL (add_actions_signal (QList<QAction *>)),
+           this, SLOT (add_actions (QList<QAction *>)));
   // copy & paste handling
   connect (p, SIGNAL (copyClipboard_signal ()),
            this, SLOT (copyClipboard ()));
@@ -477,6 +480,13 @@
     }
 }
 
+// slot for adding actions from the main window
+void
+octave_dock_widget::add_actions (QList<QAction *> action_list)
+{
+  if (objectName () != "FileEditor")
+    addActions (action_list);
+}
 
 // close event
 void
--- a/libgui/src/octave-dock-widget.h	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/src/octave-dock-widget.h	Thu May 14 14:52:09 2015 -0400
@@ -102,6 +102,8 @@
   // event filter for double clicks into the window decoration elements
   bool eventFilter(QObject *obj, QEvent *e);
 
+  virtual void add_actions (QList<QAction *> action_list);
+
 private slots:
 
   void change_floating (bool);
--- a/libgui/src/octave-qt-link.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/src/octave-qt-link.cc	Thu May 14 14:52:09 2015 -0400
@@ -448,7 +448,7 @@
 }
 
 void
-octave_qt_link::do_set_workspace (bool top_level, bool debug, 
+octave_qt_link::do_set_workspace (bool top_level, bool debug,
                                   const std::list<workspace_element>& ws)
 {
   if (! top_level && ! debug)
--- a/libgui/src/octave-qt-link.h	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/src/octave-qt-link.h	Thu May 14 14:52:09 2015 -0400
@@ -108,7 +108,7 @@
 
   void do_execute_command_in_terminal (const std::string& command);
 
-  void do_set_workspace (bool top_level, bool debug, 
+  void do_set_workspace (bool top_level, bool debug,
                          const std::list<workspace_element>& ws);
 
   void do_clear_workspace (void);
--- a/libgui/src/shortcut-manager.h	Thu May 14 08:55:05 2015 -0700
+++ b/libgui/src/shortcut-manager.h	Thu May 14 14:52:09 2015 -0400
@@ -137,7 +137,7 @@
 
     shortcut_t (const shortcut_t& x)
       : tree_item (x.tree_item), description (x.description),
-        settings_key (x.settings_key), 
+        settings_key (x.settings_key),
         actual_sc (new QKeySequence[2]), default_sc (new QKeySequence[2])
     {
       actual_sc[0] = x.actual_sc[0];
--- a/libinterp/corefcn/data.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/corefcn/data.cc	Thu May 14 14:52:09 2015 -0400
@@ -2900,7 +2900,7 @@
 \n\
 Note that Octave tends to crop unused memory at the first opportunity\n\
 for sparse objects.  Thus, in general the value of @code{nzmax} will be the\n\
-the same as @code{nnz} except for some cases of user-created sparse objects.\n\
+same as @code{nnz} except for some cases of user-created sparse objects.\n\
 @seealso{nnz, spalloc, sparse}\n\
 @end deftypefn")
 {
@@ -4490,8 +4490,8 @@
 to the IEEE representation for positive infinity.\n\
 \n\
 Infinity is produced when results are too large to be represented using the\n\
-the IEEE floating point format for numbers.  Two common examples which\n\
-produce infinity are division by zero and overflow.\n\
+IEEE floating point format for numbers.  Two common examples which produce\n\
+infinity are division by zero and overflow.\n\
 \n\
 @example\n\
 @group\n\
--- a/libinterp/corefcn/dirfns.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/corefcn/dirfns.cc	Thu May 14 14:52:09 2015 -0400
@@ -96,7 +96,7 @@
        "-*- texinfo -*-\n\
 @deftypefn  {Command} {} cd @var{dir}\n\
 @deftypefnx {Command} {} cd\n\
-@deftypefnx {Built-in Function} {@var{old_dir} =} cd @var{dir}\n\
+@deftypefnx {Built-in Function} {@var{old_dir} =} cd (@var{dir})\n\
 @deftypefnx {Command} {} chdir @dots{}\n\
 Change the current working directory to @var{dir}.\n\
 \n\
--- a/libinterp/corefcn/error.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/corefcn/error.cc	Thu May 14 14:52:09 2015 -0400
@@ -169,7 +169,7 @@
 
   if (name)
     msg_string = std::string (name) + ": ";
-  
+
   msg_string += base_msg + "\n";
 
   Vlast_warning_id = id;
--- a/libinterp/corefcn/find.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/corefcn/find.cc	Thu May 14 14:52:09 2015 -0400
@@ -336,7 +336,7 @@
 @var{x} is a row vector or as a column otherwise.\n\
 \n\
 To obtain a single index for each matrix element, Octave pretends that the\n\
-columns of a matrix form one long vector (like Fortran arrays are stored). \n\
+columns of a matrix form one long vector (like Fortran arrays are stored).\n\
 For example:\n\
 \n\
 @example\n\
--- a/libinterp/corefcn/gl2ps-renderer.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/corefcn/gl2ps-renderer.cc	Thu May 14 14:52:09 2015 -0400
@@ -228,9 +228,9 @@
   fontsize = props.get ("fontsize_points").double_value ();
 
   caseless_str fn = props.get ("fontname").xtolower ().string_value ();
-  bool isbold = 
+  bool isbold =
     (props.get ("fontweight").xtolower ().string_value () == "bold");
-  bool isitalic = 
+  bool isitalic =
     (props.get ("fontangle").xtolower ().string_value () == "italic");
 
   fontname = "";
--- a/libinterp/corefcn/graphics.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/corefcn/graphics.cc	Thu May 14 14:52:09 2015 -0400
@@ -3102,7 +3102,7 @@
 {
   if (uicontextmenu.get ().is_empty ())
     return;
-  
+
   graphics_object obj = gh_manager::get_object (uicontextmenu.get ());
   if (obj && obj.isa ("uicontextmenu"))
     {
@@ -3233,7 +3233,7 @@
     }
 }
 
-void 
+void
 base_graphics_object::build_user_defaults_map (property_list::pval_map_type &def, const std::string go_name) const
 {
   property_list local_defaults = get_defaults_list ();
@@ -8841,14 +8841,14 @@
 // ---------------------------------------------------------------------
 
 uicontextmenu::~uicontextmenu (void)
-{ 
+{
   std::list<graphics_handle> lst = xproperties.get_dependent_obj_list ();
   std::list<graphics_handle>::const_iterator it;
-  
+
   for (it = lst.begin (); it != lst.end (); it++)
     {
       graphics_object go = gh_manager::get_object (*it);
-      
+
       if (go.valid_object () &&
           go.get ("uicontextmenu") == xproperties.get___myhandle__ ())
         go.set ("uicontextmenu", Matrix ());
--- a/libinterp/corefcn/graphics.in.h	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/corefcn/graphics.in.h	Thu May 14 14:52:09 2015 -0400
@@ -5357,13 +5357,13 @@
   class OCTINTERP_API properties : public base_properties
   {
   public:
-  
-    void add_dependent_obj (graphics_handle gh) 
+
+    void add_dependent_obj (graphics_handle gh)
     { dependent_obj_list.push_back (gh); }
 
-    // FIXME: the list may contain duplicates. 
-    //        Should we return only unique elements? 
-    const std::list<graphics_handle> get_dependent_obj_list (void) 
+    // FIXME: the list may contain duplicates.
+    //        Should we return only unique elements?
+    const std::list<graphics_handle> get_dependent_obj_list (void)
     { return dependent_obj_list; }
 
     // See the genprops.awk script for an explanation of the
--- a/libinterp/corefcn/input.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/corefcn/input.cc	Thu May 14 14:52:09 2015 -0400
@@ -941,7 +941,11 @@
 
 DEFUN (echo, args, ,
        "-*- texinfo -*-\n\
-@deftypefn {Command} {} echo options\n\
+@deftypefn  {Command} {} echo\n\
+@deftypefnx {Command} {} echo on\n\
+@deftypefnx {Command} {} echo off\n\
+@deftypefnx {Command} {} echo on all\n\
+@deftypefnx {Command} {} echo off all\n\
 Control whether commands are displayed as they are executed.\n\
 \n\
 Valid options are:\n\
--- a/libinterp/corefcn/mappers.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/corefcn/mappers.cc	Thu May 14 14:52:09 2015 -0400
@@ -1331,7 +1331,7 @@
        "-*- texinfo -*-\n\
 @deftypefn {Mapping Function} {} isinf (@var{x})\n\
 Return a logical array which is true where the elements of @var{x} are\n\
-are infinite and false where they are not.\n\
+infinite and false where they are not.\n\
 \n\
 For example:\n\
 \n\
--- a/libinterp/corefcn/octave-link.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/corefcn/octave-link.cc	Thu May 14 14:52:09 2015 -0400
@@ -61,7 +61,7 @@
   if (enabled ())
     instance->do_set_workspace ((symbol_table::current_scope ()
                                  == symbol_table::top_scope ()),
-                                instance->debugging, 
+                                instance->debugging,
                                 symbol_table::workspace_info ());
 }
 
--- a/libinterp/corefcn/quadcc.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/corefcn/quadcc.cc	Thu May 14 14:52:09 2015 -0400
@@ -1496,7 +1496,7 @@
 \n\
 @var{f} is a function handle, inline function, or string containing the name\n\
 of the function to evaluate.  The function @var{f} must be vectorized and\n\
-must return a vector of output values if given a vector of input values. \n\
+must return a vector of output values if given a vector of input values.\n\
 For example,\n\
 \n\
 @example\n\
--- a/libinterp/corefcn/strfns.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/corefcn/strfns.cc	Thu May 14 14:52:09 2015 -0400
@@ -50,7 +50,7 @@
 matrices, or cell arrays.\n\
 \n\
 Arguments are concatenated vertically.  The returned values are padded with\n\
-blanks as needed to make each row of the string array have the same length. \n\
+blanks as needed to make each row of the string array have the same length.\n\
 Empty input strings are significant and will concatenated in the output.\n\
 \n\
 For numerical input, each element is converted to the corresponding ASCII\n\
@@ -181,7 +181,7 @@
 matrices, or cell arrays.\n\
 \n\
 Arguments are concatenated vertically.  The returned values are padded with\n\
-blanks as needed to make each row of the string array have the same length. \n\
+blanks as needed to make each row of the string array have the same length.\n\
 Unlike @code{char}, empty strings are removed and will not appear in the\n\
 output.\n\
 \n\
--- a/libinterp/corefcn/syscalls.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/corefcn/syscalls.cc	Thu May 14 14:52:09 2015 -0400
@@ -168,7 +168,7 @@
 Replace current process with a new process.\n\
 \n\
 Calling @code{exec} without first calling @code{fork} will terminate your\n\
-current Octave process and replace it with the program named by @var{file}. \n\
+current Octave process and replace it with the program named by @var{file}.\n\
 For example,\n\
 \n\
 @example\n\
@@ -1386,7 +1386,7 @@
 \n\
 If the returned value of @var{pid} is greater than 0, it is the process ID\n\
 of the child process that exited.  If an error occurs, @var{pid} will be\n\
-less than zero and @var{msg} will contain a system-dependent error message. \n\
+less than zero and @var{msg} will contain a system-dependent error message.\n\
 The value of @var{status} contains additional system-dependent information\n\
 about the subprocess that exited.\n\
 @seealso{WCONTINUE, WCOREDUMP, WEXITSTATUS, WIFCONTINUED, WIFSIGNALED, WIFSTOPPED, WNOHANG, WSTOPSIG, WTERMSIG, WUNTRACED}\n\
@@ -1538,7 +1538,7 @@
 Given @var{status} from a call to @code{waitpid}, return\n\
 true if the child produced a core dump.\n\
 \n\
-This function should only be employed if @code{WIFSIGNALED} returned true. \n\
+This function should only be employed if @code{WIFSIGNALED} returned true.\n\
 The macro used to implement this function is not specified in POSIX.1-2001\n\
 and is not available on some Unix implementations (e.g., AIX, SunOS).\n\
 @seealso{waitpid, WIFEXITED, WEXITSTATUS, WIFSIGNALED, WTERMSIG, WIFSTOPPED, WSTOPSIG, WIFCONTINUED}\n\
--- a/libinterp/corefcn/sysdep.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/corefcn/sysdep.cc	Thu May 14 14:52:09 2015 -0400
@@ -1040,7 +1040,7 @@
 /*
 %!test
 %! if (! ispc ())
-%!   assert (get_home_directory (), getenv ("HOME")); 
+%!   assert (get_home_directory (), getenv ("HOME"));
 %! endif
 */
 
--- a/libinterp/corefcn/urlwrite.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/corefcn/urlwrite.cc	Thu May 14 14:52:09 2015 -0400
@@ -310,7 +310,7 @@
 \n\
 The variable @var{success} is 1 if the download was successful,\n\
 otherwise it is 0 in which case @var{message} contains an error message.\n\
- \n\
+\n\
 If no output argument is specified and an error occurs, then the error is\n\
 signaled through Octave's error handling mechanism.\n\
 \n\
--- a/libinterp/corefcn/utils.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/corefcn/utils.cc	Thu May 14 14:52:09 2015 -0400
@@ -303,7 +303,7 @@
 matches.\n\
 \n\
 If the second optional argument @qcode{\"all\"} is supplied, return a cell\n\
-array containing the list of all files that have the same name in the path. \n\
+array containing the list of all files that have the same name in the path.\n\
 If no files are found, return an empty cell array.\n\
 @seealso{file_in_path, dir_in_loadpath, path}\n\
 @end deftypefn")
@@ -382,7 +382,7 @@
 the path for element of the cell array and return the first that matches.\n\
 \n\
 If the third optional argument @qcode{\"all\"} is supplied, return a cell\n\
-array containing the list of all files that have the same name in the path. \n\
+array containing the list of all files that have the same name in the path.\n\
 If no files are found, return an empty cell array.\n\
 @seealso{file_in_loadpath, dir_in_loadpath, path}\n\
 @end deftypefn")
--- a/libinterp/corefcn/variables.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/corefcn/variables.cc	Thu May 14 14:52:09 2015 -0400
@@ -648,10 +648,10 @@
 %!assert (exist ("./plot.m", "file"), 0);
 %!assert (exist ("./%nonexistentfile%", "file"), 0);
 %!assert (exist ("%nonexistentfile%", "file"), 0);
- 
+
 ## Don't search path for absolute file names
 %!test
-%! tname = tempname (pwd ()); 
+%! tname = tempname (pwd ());
 %! unwind_protect
 %!   ## open/close file to create it, equivalent of touch
 %!   fid = fopen (tname, "w");
@@ -1898,7 +1898,7 @@
 @deftypefn  {Command} {} whos\n\
 @deftypefnx {Command} {} whos pattern @dots{}\n\
 @deftypefnx {Command} {} whos option pattern @dots{}\n\
-@deftypefnx {Command} {S =} whos (\"pattern\", @dots{})\n\
+@deftypefnx {Built-in Function} {S =} whos (\"pattern\", @dots{})\n\
 Provide detailed information on currently defined variables matching the\n\
 given patterns.\n\
 \n\
--- a/libinterp/dldfcn/__init_fltk__.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/dldfcn/__init_fltk__.cc	Thu May 14 14:52:09 2015 -0400
@@ -586,7 +586,7 @@
             // if no pos yet, delay adding menu until after other menus
             int pos = kprop.get_position ();
             if (pos <= 0)
-              delayed_menus.push_back ((len - (ii + 1))); 
+              delayed_menus.push_back ((len - (ii + 1)));
             else
              {
                add_to_menu (kprop);
@@ -628,7 +628,7 @@
             // if no pos yet, delay adding menu until after other menus
             int pos = kprop.get_position ();
             if (pos <= 0)
-              delayed_menus.push_back ((len - (ii + 1))); 
+              delayed_menus.push_back ((len - (ii + 1)));
             else
              {
                add_to_menu (kprop);
--- a/libinterp/dldfcn/ccolamd.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/dldfcn/ccolamd.cc	Thu May 14 14:52:09 2015 -0400
@@ -349,7 +349,7 @@
 vector @var{p} such that @code{@var{S}(@var{p},@var{p})} tends to have a\n\
 sparser Cholesky@tie{}factor than @var{S}.\n\
 \n\
-Sometimes @code{csymamd} works well for symmetric indefinite matrices too.  \n\
+Sometimes @code{csymamd} works well for symmetric indefinite matrices too. \n\
 The matrix @var{S} is assumed to be symmetric; only the strictly lower\n\
 triangular part is referenced.  @var{S} must be square.  The ordering is\n\
 followed by an elimination tree post-ordering.\n\
--- a/libinterp/dldfcn/colamd.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/dldfcn/colamd.cc	Thu May 14 14:52:09 2015 -0400
@@ -461,7 +461,7 @@
 vector p such that @code{@var{S}(@var{p}, @var{p})} tends to have a\n\
 sparser Cholesky@tie{}factor than @var{S}.\n\
 \n\
-Sometimes @code{symamd} works well for symmetric indefinite matrices too.  \n\
+Sometimes @code{symamd} works well for symmetric indefinite matrices too. \n\
 The matrix @var{S} is assumed to be symmetric; only the strictly lower\n\
 triangular part is referenced.  @var{S} must be square.\n\
 \n\
--- a/libinterp/octave-value/ov-bool-sparse.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/octave-value/ov-bool-sparse.cc	Thu May 14 14:52:09 2015 -0400
@@ -551,7 +551,7 @@
 #else
   gripe_save ("hdf5");
 #endif
-  
+
   return retval;
 }
 
--- a/libinterp/octave-value/ov-classdef.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/octave-value/ov-classdef.cc	Thu May 14 14:52:09 2015 -0400
@@ -3091,7 +3091,7 @@
                     prop.put (ait->first, ait->second);
 
                   // Install property access methods, if any. Remove the
-                  // accessor methods from the temporary storage map, so we can 
+                  // accessor methods from the temporary storage map, so we can
                   // detect which ones are invalid and do not correspond to a
                   // defined property.
 
--- a/libinterp/octave-value/ov-re-sparse.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/octave-value/ov-re-sparse.cc	Thu May 14 14:52:09 2015 -0400
@@ -865,7 +865,7 @@
 #else
   gripe_load ("hdf5");
 #endif
-  
+
   return retval;
 }
 
--- a/libinterp/octave-value/ov-struct.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/octave-value/ov-struct.cc	Thu May 14 14:52:09 2015 -0400
@@ -1792,7 +1792,7 @@
 \n\
 If the values are cell arrays, create a structure array and initialize its\n\
 values.  The dimensions of each cell array of values must match.  Singleton\n\
-cells and non-cell values are repeated so that they fill the entire array.  \n\
+cells and non-cell values are repeated so that they fill the entire array. \n\
 If the cells are empty, create an empty structure array with the specified\n\
 field names.\n\
 \n\
--- a/libinterp/parse-tree/lex.ll	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/parse-tree/lex.ll	Thu May 14 14:52:09 2015 -0400
@@ -2895,8 +2895,7 @@
 
   // If we are expecting a structure element, avoid recognizing
   // keywords and other special names and return STRUCT_ELT, which is
-  // a string that is also a valid identifier.  But first, we have to
-  // decide whether to insert a comma.
+  // a string that is also a valid identifier.
 
   if (looking_at_indirect_ref)
     {
@@ -2907,13 +2906,11 @@
 
       current_input_column += flex_yyleng ();
 
-      assert (! at_beginning_of_statement);
-
       return STRUCT_ELT;
     }
 
   // If tok is a keyword token, then is_keyword_token will set
-  // at_beginning_of_statement.  For example, if tok is and IF
+  // at_beginning_of_statement.  For example, if tok is an IF
   // token, then at_beginning_of_statement will be false.
 
   int kw_token = is_keyword_token (tok);
--- a/libinterp/parse-tree/pt-arg-list.cc	Thu May 14 08:55:05 2015 -0700
+++ b/libinterp/parse-tree/pt-arg-list.cc	Thu May 14 14:52:09 2015 -0400
@@ -136,7 +136,7 @@
 \n\
 @example\n\
 @group\n\
-@var{x} = [ 1 2 3 \n\
+@var{x} = [ 1 2 3\n\
       4 5 6 ];\n\
 @var{x}(1,end)\n\
     @result{} 3\n\
--- a/scripts/audio/@audiorecorder/play.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/audio/@audiorecorder/play.m	Thu May 14 14:52:09 2015 -0400
@@ -22,10 +22,10 @@
 ## @deftypefnx {Function File} {@var{player} =} play (@var{recorder}, [@var{start}, @var{end}])
 ## Play the audio recorded in @var{recorder} and return a corresponding
 ## audioplayer object.
-## 
+##
 ## If the optional argument @var{start} is provided, begin playing
 ## @var{start} seconds in to the recording.
-## 
+##
 ## If the optional argument @var{end} is provided, stop playing at
 ## @var{end} seconds in the recording.
 ## @end deftypefn
--- a/scripts/audio/wavwrite.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/audio/wavwrite.m	Thu May 14 14:52:09 2015 -0400
@@ -27,7 +27,7 @@
 ##
 ## The optional argument @var{fs} specifies the sample rate of the audio signal
 ## in Hz.
-## 
+##
 ## The optional argument @var{nbits} specifies the number of bits per sample
 ## to write to @var{filename}.
 ##
--- a/scripts/general/cart2sph.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/general/cart2sph.m	Thu May 14 14:52:09 2015 -0400
@@ -25,7 +25,7 @@
 ## The inputs @var{x}, @var{y}, and @var{z} must be the same shape, or scalar.
 ## If called with a single matrix argument then each row of @var{C} represents
 ## the Cartesian coordinate (@var{x}, @var{y}, @var{z}).
-## 
+##
 ## @var{theta} describes the angle relative to the positive x-axis.
 ##
 ## @var{phi} is the angle relative to the xy-plane.
--- a/scripts/geometry/inpolygon.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/geometry/inpolygon.m	Thu May 14 14:52:09 2015 -0400
@@ -81,7 +81,7 @@
     j = i;
   endfor
 
-  ## Matlab definition include both in polygon and on polygon points. 
+  ## Matlab definition include both in polygon and on polygon points.
   in |= on;
 
 endfunction
--- a/scripts/gui/listdlg.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/gui/listdlg.m	Thu May 14 14:52:09 2015 -0400
@@ -122,7 +122,7 @@
   ## make sure listcell strings are a cell array
   if (! iscell (listcell))
     listcell = {listcell};
-  elseif (iscellstr (listcell{1})) 
+  elseif (iscellstr (listcell{1}))
     listcell = listcell{1};
   endif
 
--- a/scripts/gui/msgbox.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/gui/msgbox.m	Thu May 14 14:52:09 2015 -0400
@@ -37,7 +37,7 @@
 ##
 ## Compatibility Note: The optional argument @var{createmode} is accepted for
 ## @sc{matlab} compatibility, but is not implemented.
-## 
+##
 ## @seealso{errordlg, helpdlg, inputdlg, listdlg, questdlg, warndlg}
 ## @end deftypefn
 
--- a/scripts/gui/private/message_dialog.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/gui/private/message_dialog.m	Thu May 14 14:52:09 2015 -0400
@@ -68,7 +68,7 @@
         error ("%s: CREATEMODE is not a valid type", caller);
     endswitch
   endif
-  
+
   if (__octave_link_enabled__ ())
     retval = __octave_link_message_dialog__ (icon, msg, title);
   elseif (__have_feature__ ("JAVA"))
--- a/scripts/help/get_first_help_sentence.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/help/get_first_help_sentence.m	Thu May 14 14:52:09 2015 -0400
@@ -24,7 +24,7 @@
 ##
 ## 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 
+## 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
--- a/scripts/help/lookfor.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/help/lookfor.m	Thu May 14 14:52:09 2015 -0400
@@ -26,7 +26,7 @@
 ##
 ## By default, @code{lookfor} looks for @var{str} in just the first sentence of
 ## the help string for each function found.  The entire help text of each
-## function can be searched by using the @qcode{"-all"} argument.  All searches 
+## function can be searched by using the @qcode{"-all"} argument.  All searches
 ## are case insensitive.
 ##
 ## When called with no output arguments, @code{lookfor} prints the list of
--- a/scripts/image/imshow.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/image/imshow.m	Thu May 14 14:52:09 2015 -0400
@@ -37,7 +37,7 @@
 ##
 ## If a file name is given instead of an image, the file will be read and shown.
 ##
-## If given, the parameter @var{string_param1} has value @var{value1}.  
+## If given, the parameter @var{string_param1} has value @var{value1}.
 ## @var{string_param1} can be any of the following:
 ##
 ## @table @asis
--- a/scripts/io/strread.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/io/strread.m	Thu May 14 14:52:09 2015 -0400
@@ -149,7 +149,7 @@
 ## processing of special characters like @qcode{"@xbackslashchar{}t"}.  The
 ## default value for whitespace is
 ## @c Note: the next line specifically has a newline which generates a space
-## @c       in the output of qcode, but keeps the next line < 80 characters. 
+## @c       in the output of qcode, but keeps the next line < 80 characters.
 ## @qcode{"
 ## @xbackslashchar{}b@xbackslashchar{}r@xbackslashchar{}n@xbackslashchar{}t"}
 ## (note the space).  Unless whitespace is set to @qcode{""} (empty) AND at
--- a/scripts/java/javamem.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/java/javamem.m	Thu May 14 14:52:09 2015 -0400
@@ -50,7 +50,7 @@
 ## limited available physical memory or if you get Java memory errors.
 ##
 ## @qcode{"Total memory"} is what the operating system has currently assigned
-## to the JVM and depends on actual and active memory usage.  
+## to the JVM and depends on actual and active memory usage.
 ## @qcode{"Free memory"} is self-explanatory.  During operation of Java-based
 ## Octave functions the amount of Total and Free memory will vary, due to
 ## Java's own cleaning up and your operating system's memory management.
--- a/scripts/linear-algebra/normest.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/linear-algebra/normest.m	Thu May 14 14:52:09 2015 -0400
@@ -55,7 +55,7 @@
   tol = max (tol, eps (class (A)));
   ## Set random number generator to depend on target matrix
   v = rand ("state");
-  rand ("state", trace (A));
+  rand ("state", full (trace (A)));
   ncols = columns (A);
   ## Randomize y to avoid bad guesses for important matrices.
   y = rand (ncols, 1);
--- a/scripts/miscellaneous/dir.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/miscellaneous/dir.m	Thu May 14 14:52:09 2015 -0400
@@ -56,7 +56,7 @@
 ## @samp{\}.
 ##
 ## Note that for symbolic links, @code{dir} returns information about the
-## file that the symbolic link points to rather than the link itself. 
+## file that the symbolic link points to rather than the link itself.
 ## However, if the link points to a nonexistent file, @code{dir} returns
 ## information about the link.
 ## @seealso{ls, readdir, glob, what, stat, lstat}
--- a/scripts/miscellaneous/edit.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/miscellaneous/edit.m	Thu May 14 14:52:09 2015 -0400
@@ -62,7 +62,7 @@
 ## If @code{edit} is called with @var{field} and @var{value} variables, the
 ## value of the control field @var{field} will be set to @var{value}.  If an
 ## output argument is requested and the first input argument is @code{get}
-## then @code{edit} will return the value of the control field @var{field}. 
+## then @code{edit} will return the value of the control field @var{field}.
 ## If the control field does not exist, edit will return a structure
 ## containing all fields and values.  Thus, @code{edit get all} returns a
 ## complete control structure.
@@ -71,7 +71,7 @@
 ##
 ## @table @samp
 ## @item home
-## This is the location of user local m-files.  Be sure it is in your path. 
+## This is the location of user local m-files.  Be sure it is in your path.
 ## The default is @file{~/octave}.
 ##
 ## @item author
--- a/scripts/miscellaneous/genvarname.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/miscellaneous/genvarname.m	Thu May 14 14:52:09 2015 -0400
@@ -48,7 +48,7 @@
 ## @end example
 ##
 ## Note that the result is a char array or cell array of strings, not the
-## variables themselves.  To define a variable, @code{eval()} can be used. 
+## variables themselves.  To define a variable, @code{eval()} can be used.
 ## The following trivial example sets @code{x} to @code{42}.
 ##
 ## @example
--- a/scripts/miscellaneous/gzip.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/miscellaneous/gzip.m	Thu May 14 14:52:09 2015 -0400
@@ -30,7 +30,7 @@
 ## directory.
 ##
 ## If @var{dir} is defined the compressed files are placed in this directory,
-## rather than the original directory where the uncompressed file resides. 
+## rather than the original directory where the uncompressed file resides.
 ## If @var{dir} does not exist it is created.
 ##
 ## The optional output @var{filelist} is a list of the compressed files.
--- a/scripts/miscellaneous/private/__w2mpth__.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/miscellaneous/private/__w2mpth__.m	Thu May 14 14:52:09 2015 -0400
@@ -16,7 +16,7 @@
 ## along with Octave; see the file COPYING.  If not, see
 ## <http://www.gnu.org/licenses/>.
 
-## -*- texinfo -*- 
+## -*- texinfo -*-
 ## @deftypefn {Function File} {@var{mingwpath} =} __w2mpth__ (@var{winpath})
 ## Convert a Windows-style relative or full path name to MinGW style.
 ##
--- a/scripts/plot/appearance/annotation.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/plot/appearance/annotation.m	Thu May 14 14:52:09 2015 -0400
@@ -367,17 +367,17 @@
 
       linemenu (hui, h);
       set (hli, "uicontextmenu", hui);
-      
+
       ## create patch(s) and text
       if (strcmp (objtype, "arrow"))
         [x, y] = arrowcoordinates (h);
         hpa = patch (x, y, get (h, "color"), "parent", h,
                     "edgecolor",  get (h, "color"));
         update_arrow (h, {}, "position", hpa);
-        
+
         arrowmenu (hui, h);
         set (hpa, "uicontextmenu", hui);
-        
+
       elseif (strcmp (objtype, "doublearrow"))
         [x, y] = arrowcoordinates (h, 1);
         hpa = patch (x, y, get (h, "color"), "parent", h,
@@ -388,10 +388,10 @@
                     "edgecolor",  get (h, "color"));
 
         update_arrow (h, {}, "position", hpa);
-        
+
         dblarrowmenu (hui, h);
         set (hpa, "uicontextmenu", hui);
-        
+
       elseif (strcmp (objtype, "textarrow"))
         [x, y] = arrowcoordinates (h);
         hpa = patch (x, y, get (h, "color"), "parent", h,
@@ -412,7 +412,7 @@
         textmenu (hui, h);
         set (hpa, "uicontextmenu", hui);
         set (hte, "uicontextmenu", hui);
-        
+
       endif
 
       ## updaters
@@ -513,7 +513,7 @@
       for ii = 1:numel (propnames)
         update_textbox (h, {}, propnames{ii}, [hte hpa]);
       endfor
-      
+
       textboxmenu (hui, h);
       set (hpa, "uicontextmenu", hui);
       set (hte, "uicontextmenu", hui);
@@ -534,7 +534,7 @@
 endfunction
 
 function props = lineprops (varargin)
-  ## FIXME: Use "axesx(y)lim" instead of "linex(y)data" 
+  ## FIXME: Use "axesx(y)lim" instead of "linex(y)data"
   props = {"color", "color", [0 0 0], ...
            "linestyle",  "linelinestyle", "-", ...
            "linewidth", "linelinewidth", 0.5, ...
@@ -552,11 +552,11 @@
 
 function linemenu (hui, hpar)
   hm = uimenu ("parent", hui, "label", "Line");
-  
+
   ## Color
   vals = basecolors ();
   addbasemenu (hm, hpar, "Color", vals);
-  
+
 
   ## Linestyle
   vals = set (hpar, "linestyle");
@@ -578,7 +578,7 @@
 
 function arrowmenu (hui, hpar)
   hm = uimenu ("parent", hui, "label", "Arrowhead");
-  
+
   ## Headlength/width
   vals = 6:2:16;
   addbasemenu (hm, hpar, "headlength", vals, "Length");
@@ -604,7 +604,7 @@
 function dblarrowmenu (hui, hpar)
   hm1 = uimenu ("parent", hui, "label", "Arrowhead #1");
   hm2 = uimenu ("parent", hui, "label", "Arrowhead #2");
-  
+
   ## Headlength/width
   vals = 6:2:16;
   addbasemenu (hm1, hpar, "head1length", vals, "Length");
@@ -648,9 +648,9 @@
     prompt = "";
     def = {def};
   endif
-  
+
   cstr = inputdlg (prompt, prop, 1, def);
-  
+
   if (! isempty (cstr))
     set (hpar, prop, cstr)
   endif
@@ -663,7 +663,7 @@
   prop = "String";
   fcn = @() stringdlg (hpar, prop);
   uimenu (hm, "label", prop, "callback", fcn);
-  
+
   ## Font properties
   prop = "textcolor";
   vals = basecolors ();
@@ -680,7 +680,7 @@
   prop = "textrotation";
   vals = 0:90:270;
   addbasemenu (hm, hpar, prop, vals, "Rotation");
-  
+
   prop = "horizontalalignment";
   vals = set (hpar, prop);
   addbasemenu (hm, hpar, prop, vals, "Horizontal Alignment", ...
@@ -690,7 +690,7 @@
   addbasemenu (hm, hpar, prop, vals, "Vertical Alignment");
 
   ## FIXME: Add text background properties when they are supported
-  
+
   prop = "interpreter";
   vals = set (hpar, prop);
   addbasemenu (hm, hpar, prop, vals, "Interpreter", ...
@@ -724,11 +724,11 @@
 function textboxmenu (hui, hpar)
   ## Text properties
   hm1 = uimenu ("parent", hui, "label", "Text");
-  
+
   prop = "String";
   fcn = @() stringdlg (hpar, prop);
   uimenu (hm1, "label", prop, "callback", fcn);
-  
+
   prop = "Color";
   vals = basecolors ();
   addbasemenu (hm1, hpar, prop, vals);
@@ -741,7 +741,7 @@
   prop = "fontweight";
   vals = set (hpar, prop);
   addbasemenu (hm1, hpar, prop, vals, "Weight");
-  
+
   prop = "horizontalalignment";
   vals = set (hpar, prop);
   addbasemenu (hm1, hpar, prop, vals, "Horizontal Alignment", ...
@@ -752,7 +752,7 @@
   prop = "Margin";
   vals = 2:2:10;
   addbasemenu (hm1, hpar, prop, vals);
-  
+
   prop = "interpreter";
   vals = set (hpar, prop);
   addbasemenu (hm1, hpar, prop, vals, "Interpreter", ...
@@ -760,7 +760,7 @@
 
   ## Background properties
   hm2 = uimenu ("parent", hui, "label", "Background");
-  
+
   prop = "fitboxtotext";
   vals = set (hpar, prop);
   addbasemenu (hm2, hpar, prop, vals, "Fit box to text");
@@ -813,7 +813,7 @@
   if (isempty (mainlabel))
     mainlabel = pname;
   endif
-  
+
   h = uimenu ("parent", hm, "label", mainlabel);
 
   is_numeric = ! iscell (vals);
@@ -826,7 +826,7 @@
       val = vals(ii);
       label = num2str (val);
     endif
-    
+
     fcn = @() set (hpar, pname, val);
     htmp(ii) = uimenu (h, "label", label, "callback", fcn);
   endfor
@@ -840,7 +840,7 @@
   if (is_numeric)
     current = num2str (current);
   endif
-  
+
   idx = strcmp (vals, current);
   set (hmenus(idx), "checked", "on");
   set (hmenus(! idx), "checked", "off");
--- a/scripts/plot/appearance/box.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/plot/appearance/box.m	Thu May 14 14:52:09 2015 -0400
@@ -17,9 +17,9 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn  {Command} {} box on
+## @deftypefn  {Command} {} box
+## @deftypefnx {Command} {} box on
 ## @deftypefnx {Command} {} box off
-## @deftypefnx {Command} {} box
 ## @deftypefnx {Function File} {} box (@var{hax}, @dots{})
 ## Control display of the axis border.
 ##
--- a/scripts/plot/appearance/hidden.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/plot/appearance/hidden.m	Thu May 14 14:52:09 2015 -0400
@@ -18,8 +18,8 @@
 
 ## -*- texinfo -*-
 ## @deftypefn  {Command} {} hidden
-## @deftypefnx {Command} {} hidden "on"
-## @deftypefnx {Command} {} hidden "off"
+## @deftypefnx {Command} {} hidden on
+## @deftypefnx {Command} {} hidden off
 ## @deftypefnx {Function File} {@var{mode} =} hidden (@dots{})
 ## Control mesh hidden line removal.
 ##
--- a/scripts/plot/draw/colorbar.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/plot/draw/colorbar.m	Thu May 14 14:52:09 2015 -0400
@@ -180,7 +180,7 @@
     obj = get (ax);
     obj.__cbar_hax__ = ax;
     position = obj.position;
-    
+
     hpar = ancestor (ax, "figure");
     clen = rows (get (hpar, "colormap"));
     cext = get (ax, "clim");
--- a/scripts/plot/draw/contourc.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/plot/draw/contourc.m	Thu May 14 14:52:09 2015 -0400
@@ -50,7 +50,7 @@
 ## length of @var{lenn}.
 ##
 ## The optional return value @var{lev} is a vector with the Z values of
-## of the contour levels.
+## the contour levels.
 ##
 ## Example:
 ##
--- a/scripts/plot/draw/cylinder.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/plot/draw/cylinder.m	Thu May 14 14:52:09 2015 -0400
@@ -29,7 +29,7 @@
 ## and at @code{Z == 1}.
 ##
 ## The optional input @var{n} determines the number of faces around the
-## the circumference of the cylinder.  The default value is 20.
+## circumference of the cylinder.  The default value is 20.
 ##
 ## If the first argument @var{hax} is an axes handle, then plot into this axis,
 ## rather than the current axes returned by @code{gca}.
--- a/scripts/plot/draw/ellipsoid.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/plot/draw/ellipsoid.m	Thu May 14 14:52:09 2015 -0400
@@ -27,7 +27,7 @@
 ## The inputs @var{xr}, @var{yr}, @var{zr} specify the semi-major axis lengths.
 ##
 ## The optional input @var{n} determines the number of faces around the
-## the circumference of the cylinder.  The default value is 20.
+## circumference of the cylinder.  The default value is 20.
 ##
 ## If the first argument @var{hax} is an axes handle, then plot into this axis,
 ## rather than the current axes returned by @code{gca}.
--- a/scripts/plot/draw/quiver3.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/plot/draw/quiver3.m	Thu May 14 14:52:09 2015 -0400
@@ -26,7 +26,7 @@
 ## @deftypefnx {Function File} {@var{h} =} quiver3 (@dots{})
 ##
 ## Plot a 3-D vector field with arrows.
-## 
+##
 ## Plot the (@var{u}, @var{v}, @var{w}) components of a vector field in
 ## an (@var{x}, @var{y}, @var{z}) meshgrid.  If the grid is uniform then
 ## @var{x}, @var{y}, and @var{z} can be specified as vectors.
--- a/scripts/plot/util/hold.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/plot/util/hold.m	Thu May 14 14:52:09 2015 -0400
@@ -56,7 +56,7 @@
   if (nargin > 0 && isscalar (varargin{1}) && isaxes (varargin{1}))
     hax = varargin{1};
     varargin(1) = [];
-    nargs = numel (varargin);    
+    nargs = numel (varargin);
     hfig = ancestor (hax, "figure");
   elseif (nargin > 0 && numel (varargin{1}) > 1 && ishandle (varargin{1}))
     print_usage ();
--- a/scripts/plot/util/print.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/plot/util/print.m	Thu May 14 14:52:09 2015 -0400
@@ -79,7 +79,7 @@
 ##   Octave is able to produce output for various printers, bitmaps, and
 ## vector formats by using Ghostscript.  For bitmap and printer output
 ## anti-aliasing is applied using Ghostscript's TextAlphaBits and
-## GraphicsAlphaBits options.  The default number of bits for each is 4. 
+## GraphicsAlphaBits options.  The default number of bits for each is 4.
 ## Allowed values for @var{N} are 1, 2, or 4.
 ##
 ## @item -d@var{device}
--- a/scripts/polynomial/mkpp.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/polynomial/mkpp.m	Thu May 14 14:52:09 2015 -0400
@@ -25,7 +25,7 @@
 ##
 ## @var{breaks} must be a vector of strictly increasing values.  The number of
 ## intervals is given by @code{@var{ni} = length (@var{breaks}) - 1}.
-## 
+##
 ## When @var{m} is the polynomial order @var{coefs} must be of size:
 ## @var{ni} x @var{m} + 1.
 ##
--- a/scripts/polynomial/polyder.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/polynomial/polyder.m	Thu May 14 14:52:09 2015 -0400
@@ -25,7 +25,7 @@
 ##
 ## If a pair of polynomials is given, return the derivative of the product
 ## @math{@var{a}*@var{b}}.
-## 
+##
 ## If two inputs and two outputs are given, return the derivative of the
 ## polynomial quotient @math{@var{b}/@var{a}}.  The quotient numerator is
 ## in @var{q} and the denominator in @var{d}.
--- a/scripts/polynomial/spline.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/polynomial/spline.m	Thu May 14 14:52:09 2015 -0400
@@ -35,7 +35,7 @@
 ##
 ## @var{y} can be either a vector or array.  If @var{y} is a vector it must
 ## have a length of either @var{n} or @code{@var{n} + 2}.  If the length of
-## @var{y} is @var{n}, then the @qcode{"not-a-knot"} end condition is used. 
+## @var{y} is @var{n}, then the @qcode{"not-a-knot"} end condition is used.
 ## If the length of @var{y} is @code{@var{n} + 2}, then the first and last
 ## values of the vector @var{y} are the values of the first derivative of the
 ## cubic spline at the endpoints.
--- a/scripts/polynomial/unmkpp.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/polynomial/unmkpp.m	Thu May 14 14:52:09 2015 -0400
@@ -29,7 +29,7 @@
 ##
 ## @item @var{p}
 ## Polynomial coefficients for points in sample interval.
-## @code{@var{p} (@var{i}, :)} contains the coefficients for the polynomial 
+## @code{@var{p} (@var{i}, :)} contains the coefficients for the polynomial
 ## over interval @var{i} ordered from highest to lowest.  If
 ## @code{@var{d} > 1}, @code{@var{p} (@var{r}, @var{i}, :)} contains the
 ## coefficients for the r-th polynomial defined on interval @var{i}.
--- a/scripts/signal/arma_rnd.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/signal/arma_rnd.m	Thu May 14 14:52:09 2015 -0400
@@ -31,7 +31,7 @@
 ##
 ## @noindent
 ## in which @var{k} is the length of vector @var{a}, @var{l} is the length of
-## vector @var{b} and @var{e} is Gaussian white noise with variance @var{v}. 
+## vector @var{b} and @var{e} is Gaussian white noise with variance @var{v}.
 ## The function returns a vector of length @var{t}.
 ##
 ## The optional parameter @var{n} gives the number of dummy @var{x}(@var{i})
--- a/scripts/sparse/gplot.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/sparse/gplot.m	Thu May 14 14:52:09 2015 -0400
@@ -26,7 +26,7 @@
 ## an @var{n}-by-2 matrix containing the coordinates of the nodes of the graph.
 ##
 ## The optional parameter @var{line_style} defines the output style for the
-## plot.  Called with no output arguments the graph is plotted directly. 
+## plot.  Called with no output arguments the graph is plotted directly.
 ## Otherwise, return the coordinates of the plot in @var{x} and @var{y}.
 ## @seealso{treeplot, etreeplot, spy}
 ## @end deftypefn
--- a/scripts/statistics/tests/t_test.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/statistics/tests/t_test.m	Thu May 14 14:52:09 2015 -0400
@@ -30,7 +30,7 @@
 ## is tested against the two-sided alternative @code{mean (@var{x}) !=
 ## @var{m}}.  If @var{alt} is @qcode{">"}, the one-sided alternative
 ## @code{mean (@var{x}) > @var{m}} is considered.  Similarly for @var{"<"},
-## the one-sided alternative @code{mean (@var{x}) < @var{m}} is considered. 
+## the one-sided alternative @code{mean (@var{x}) < @var{m}} is considered.
 ## The default is the two-sided case.
 ##
 ## The p-value of the test is returned in @var{pval}.
--- a/scripts/statistics/tests/t_test_regression.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/statistics/tests/t_test_regression.m	Thu May 14 14:52:09 2015 -0400
@@ -31,7 +31,7 @@
 ## can be selected.  If @var{alt} is @qcode{"!="} or @qcode{"<>"}, the null
 ## is tested against the two-sided alternative @nospell{@code{@var{rr} *
 ## @var{b} != @var{r}}}.  If @var{alt} is @qcode{">"}, the one-sided
-## alternative @nospell{@code{@var{rr} * @var{b} > @var{r}}} is used. 
+## alternative @nospell{@code{@var{rr} * @var{b} > @var{r}}} is used.
 ## Similarly for @var{"<"}, the one-sided alternative @nospell{@code{@var{rr}
 ## * @var{b} < @var{r}}} is used.  The default is the two-sided case.
 ##
--- a/scripts/strings/mat2str.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/strings/mat2str.m	Thu May 14 14:52:09 2015 -0400
@@ -27,7 +27,7 @@
 ## The precision of the values is given by @var{n}.  If @var{n} is a scalar
 ## then both real and imaginary parts of the matrix are printed to the same
 ## precision.  Otherwise @code{@var{n}(1)} defines the precision of the real
-## part and @code{@var{n}(2)} defines the precision of the imaginary part. 
+## part and @code{@var{n}(2)} defines the precision of the imaginary part.
 ## The default for @var{n} is 15.
 ##
 ## If the argument @qcode{"class"} is given then the class of @var{x} is
--- a/scripts/strings/strsplit.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/strings/strsplit.m	Thu May 14 14:52:09 2015 -0400
@@ -182,9 +182,9 @@
   endif
 
   if (strncmpi (args.delimitertype, "simple", length_deltype))
-    is_simple = true; 
+    is_simple = true;
   elseif (strncmpi (args.delimitertype, "regularexpression", length_deltype))
-    is_simple = false; 
+    is_simple = false;
   else
     error ("strsplit:invalid_delimitertype", "strsplit: Invalid DELIMITERTYPE");
   endif
@@ -298,8 +298,8 @@
 %! assert (strsplit ("aaa", "a"), {"", ""})
 
 ## Bug #44641
-%!assert (strsplit ("xxx<yyy", "<"), {"xxx", "yyy"}) 
-%!assert (strsplit ('xxx\yyy', '\'), {"xxx", "yyy"}) 
+%!assert (strsplit ("xxx<yyy", "<"), {"xxx", "yyy"})
+%!assert (strsplit ('xxx\yyy', '\'), {"xxx", "yyy"})
 
 ## Test input validation
 %!error strsplit ()
--- a/scripts/strings/strtrunc.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/strings/strtrunc.m	Thu May 14 14:52:09 2015 -0400
@@ -21,7 +21,7 @@
 ## Truncate the character string @var{s} to length @var{n}.
 ##
 ## If @var{s} is a character matrix, then the number of columns is adjusted.
-## 
+##
 ## If @var{s} is a cell array of strings, then the operation is performed
 ## on each cell element and the new cell array is returned.
 ## @end deftypefn
--- a/scripts/strings/untabify.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/strings/untabify.m	Thu May 14 14:52:09 2015 -0400
@@ -24,7 +24,7 @@
 ##
 ## The input, @var{t}, may be either a 2-D character array, or a cell array of
 ## character strings.  The output is the same class as the input.
-## 
+##
 ## The tab width is specified by @var{tw}, and defaults to eight.
 ##
 ## If the optional argument @var{deblank} is true, then the spaces will be
--- a/scripts/testfun/assert.m	Thu May 14 08:55:05 2015 -0700
+++ b/scripts/testfun/assert.m	Thu May 14 14:52:09 2015 -0400
@@ -48,10 +48,10 @@
 ## @item assert (@var{observed}, @var{expected}, @var{tol})
 ## Produce an error if observed is not the same as expected but equality
 ## comparison for numeric data uses a tolerance @var{tol}.
-## 
+##
 ## If @var{tol} is positive then it is an absolute tolerance which will produce
 ## an error if @code{abs (@var{observed} - @var{expected}) > abs (@var{tol})}.
-## 
+##
 ## If @var{tol} is negative then it is a relative tolerance which will produce
 ## an error if @code{abs (@var{observed} - @var{expected}) >
 ## abs (@var{tol} * @var{expected})}.