changeset 20778:8513c84a13cb

Use parser string concatenation rather than strcat() for performance in m-files. * __file_filter__.m, __get_funcname__.m, uigetfile.m, uiputfile.m, __makeinfo__.m, print_usage.m, fix_version.m, axis.m, __add_datasource__.m, print.m, __gnuplot_draw_axes__.m, __gnuplot_print__.m, __opengl_print__.m, __print_parse_opts__.m, saveas.m, html_compare_plot_demos.m: Use parser string concatenation rather than strcat() for performance in m-files.
author Rik <rik@octave.org>
date Mon, 30 Nov 2015 08:20:08 -0800
parents 29861f5f28c5
children b6af3f77d1bd
files scripts/gui/private/__file_filter__.m scripts/gui/private/__get_funcname__.m scripts/gui/uigetfile.m scripts/gui/uiputfile.m scripts/help/__makeinfo__.m scripts/help/print_usage.m scripts/pkg/private/fix_version.m scripts/plot/appearance/axis.m scripts/plot/draw/private/__add_datasource__.m scripts/plot/util/print.m scripts/plot/util/private/__gnuplot_draw_axes__.m scripts/plot/util/private/__gnuplot_print__.m scripts/plot/util/private/__opengl_print__.m scripts/plot/util/private/__print_parse_opts__.m scripts/plot/util/saveas.m scripts/testfun/private/html_compare_plot_demos.m
diffstat 16 files changed, 38 insertions(+), 40 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/gui/private/__file_filter__.m	Mon Nov 30 09:15:58 2015 -0500
+++ b/scripts/gui/private/__file_filter__.m	Mon Nov 30 08:20:08 2015 -0800
@@ -51,10 +51,10 @@
   elseif (ischar (file_filter))
     [defdir, fname, fext] = fileparts (file_filter);
     if (! strcmp (fname, "*"))
-      defname = strcat (fname, fext);
+      defname = [fname, fext];
     endif
-    if ((length (fext) > 0) && (! strcmp(fext, '.*')))
-      fext = strcat ("*", fext);
+    if ((length (fext) > 0) && (! strcmp (fext, ".*")))
+      fext = ["*" fext];
       retval = {fext, __default_filtername__(fext)};
     endif
   endif
--- a/scripts/gui/private/__get_funcname__.m	Mon Nov 30 09:15:58 2015 -0500
+++ b/scripts/gui/private/__get_funcname__.m	Mon Nov 30 08:20:08 2015 -0800
@@ -30,13 +30,13 @@
 
   if (! __octave_link_enabled__ ())
     tk = graphics_toolkit ();
-    funcname = strcat ("__", basename, "_", tk, "__");
+    funcname = [ "__" basename "_" tk "__"];
     if (numel (tk) > 0 && ! strcmp (tk, "fltk")
         && ! __is_function__ (funcname))
       warning ("%s: no implementation for toolkit '%s', using 'fltk' instead",
                basename, tk);
     endif
-    funcname = strcat ("__", basename, "_fltk__");
+    funcname = ["__" basename "_fltk__"];
   else
     funcname = "";
   endif
--- a/scripts/gui/uigetfile.m	Mon Nov 30 09:15:58 2015 -0500
+++ b/scripts/gui/uigetfile.m	Mon Nov 30 08:20:08 2015 -0800
@@ -138,7 +138,7 @@
         outargs{6} = fdir;
       endif
       if (length (fname) > 0 || length (fext) > 0)
-        outargs{3} = strcat (fname, fext);
+        outargs{3} = [fname fext];
       endif
     elseif (! isempty (args{3}))
       print_usage ();
--- a/scripts/gui/uiputfile.m	Mon Nov 30 09:15:58 2015 -0500
+++ b/scripts/gui/uiputfile.m	Mon Nov 30 08:20:08 2015 -0800
@@ -100,7 +100,7 @@
         outargs{6} = fdir;
       endif
       if (! isempty (fname) || ! isempty (fext))
-        outargs{3} = strcat (fname, fext);
+        outargs{3} = [fname fext];
       endif
     elseif (! isempty (varargin{3}))
       print_usage ();
--- a/scripts/help/__makeinfo__.m	Mon Nov 30 09:15:58 2015 -0500
+++ b/scripts/help/__makeinfo__.m	Mon Nov 30 08:20:08 2015 -0800
@@ -77,11 +77,9 @@
   ##       can only be removed when that function has been updated.
   if (nargin < 3)
     if (strcmpi (output_type, "plain text"))
-      fsee_also = @(T) strcat ...
-          ("\nSee also:", sprintf (" %s,", T{:})(1:end-1), "\n");
+      fsee_also = @(T) ["\nSee also:", sprintf(" %s,", T{:})(1:end-1), "\n"];
     else
-      fsee_also = @(T) strcat ...
-          ("\nSee also:", sprintf (" @ref{%s},", T{:})(1:end-1), "\n");
+      fsee_also = @(T) ["\nSee also:", sprintf(" @ref{%s},", T{:})(1:end-1), "\n"];
     endif
   endif
 
--- a/scripts/help/print_usage.m	Mon Nov 30 09:15:58 2015 -0500
+++ b/scripts/help/print_usage.m	Mon Nov 30 08:20:08 2015 -0800
@@ -116,9 +116,9 @@
     for k = 1:length (def_idx)
       endl = endl_idx(find (endl_idx > def_idx(k), 1));
       if (isempty (endl))
-        buffer = strcat (buffer, help_text (def_idx(k):end), "\n");
+        buffer = [buffer, help_text(def_idx(k):end), "\n"];
       else
-        buffer = strcat (buffer, help_text (def_idx(k):endl));
+        buffer = [buffer, help_text(def_idx(k):endl)];
       endif
     endfor
   else
--- a/scripts/pkg/private/fix_version.m	Mon Nov 30 09:15:58 2015 -0500
+++ b/scripts/pkg/private/fix_version.m	Mon Nov 30 08:20:08 2015 -0800
@@ -29,7 +29,7 @@
   if (regexp (v, '^\d+(\.\d+){1,2}$') == 1)
     parts = ostrsplit (v, '.', true);
     if (numel (parts) == 2)
-      out = strcat (v, ".0");
+      out = [v ".0"];
     else
       out = v;
     endif
--- a/scripts/plot/appearance/axis.m	Mon Nov 30 09:15:58 2015 -0500
+++ b/scripts/plot/appearance/axis.m	Mon Nov 30 08:20:08 2015 -0800
@@ -322,19 +322,19 @@
 
   ## Get the limits for axis ("tight").
   ## AX should be one of "x", "y", or "z".
-  kids = findobj (ca, "-property", strcat (ax, "data"));
+  kids = findobj (ca, "-property", [ax "data"]);
   ## The data properties for hggroups mirror their children.
   ## Exclude the redundant hgroup values.
   hg_kids = findobj (kids, "type", "hggroup");
   kids = setdiff (kids, hg_kids);
   if (isempty (kids))
     ## Return the current limits.
-    lims = get (ca, strcat (ax, "lim"));
+    lims = get (ca, [ax "lim"]);
   else
-    data = get (kids, strcat (ax, "data"));
+    data = get (kids, [ax "data"]);
     types = get (kids, "type");
 
-    scale = get (ca, strcat (ax, "scale"));
+    scale = get (ca, [ax "scale"]);
     if (! iscell (data))
       data = {data};
     endif
--- a/scripts/plot/draw/private/__add_datasource__.m	Mon Nov 30 09:15:58 2015 -0500
+++ b/scripts/plot/draw/private/__add_datasource__.m	Mon Nov 30 08:20:08 2015 -0800
@@ -28,7 +28,7 @@
   endif
 
   for i = 1 : numel (data)
-    addproperty (strcat (data{i}, "datasource"), h, "string", "");
+    addproperty ([data{i} "datasource"], h, "string", "");
   endfor
 
   i = 0;
--- a/scripts/plot/util/print.m	Mon Nov 30 09:15:58 2015 -0500
+++ b/scripts/plot/util/print.m	Mon Nov 30 08:20:08 2015 -0800
@@ -503,7 +503,7 @@
     endif
   else
     pipein = false;
-    filein = strcat ("'", strtrim (filein), "'");
+    filein = ["'" strtrim(filein) "'"];
   endif
   if (strcmp (fileout, "-"))
     pipeout = true;
@@ -515,7 +515,7 @@
     endif
   else
     pipeout = false;
-    fileout = strcat ("'", strtrim (fileout), "'");
+    fileout = ["'" strtrim(fileout) "'"];
   endif
 
   if (! isempty (opts.preview) && opts.tight_flag)
@@ -648,17 +648,17 @@
   if (! isempty (n))
     opts.name = opts.name(1:n-1);
   endif
-  latexfile = strcat (opts.name, ".tex");
+  latexfile = [opts.name ".tex"];
   switch (opts.devopt)
     case {"pdflatexstandalone"}
       packages = "\\usepackage{graphicx,color}";
-      graphicsfile = strcat (opts.name, "-inc.pdf");
+      graphicsfile = [opts.name "-inc.pdf"];
     case {"pslatexstandalone"}
       packages = "\\usepackage{epsfig,color}";
-      graphicsfile = strcat (opts.name, "-inc.ps");
+      graphicsfile = [opts.name "-inc.ps"];
     otherwise
       packages = "\\usepackage{epsfig,color}";
-      graphicsfile = strcat (opts.name, "-inc.eps");
+      graphicsfile = [opts.name "-inc.eps"];
   endswitch
   papersize = sprintf ("\\usepackage[papersize={%.2fbp,%.2fbp},text={%.2fbp,%.2fbp}]{geometry}",
                        fix (opts.canvas_size), fix (opts.canvas_size));
--- a/scripts/plot/util/private/__gnuplot_draw_axes__.m	Mon Nov 30 09:15:58 2015 -0500
+++ b/scripts/plot/util/private/__gnuplot_draw_axes__.m	Mon Nov 30 08:20:08 2015 -0800
@@ -943,7 +943,7 @@
                  || ! isnumeric (obj.markerfacecolor)
                  || (isnumeric (obj.markerfacecolor)
                      && isequal (color, obj.markerfacecolor)))
-               style = strcat (style, "points");
+               style = [style "points"];
                if (isfield (obj, "markersize"))
                  if (length (mdat) == nc)
                    m = mdat(i);
@@ -997,7 +997,7 @@
                if (sidx == 1 && ((length (style) == 5
                         && strncmp (style, "lines", 5))
                        || isempty (style)))
-                 style = strcat (style, "points");
+                 style = [style, "points"];
                  if (isfield (obj, "markersize"))
                    if (length (mdat) == nc)
                      m = mdat(i);
@@ -1867,7 +1867,7 @@
               && isequal (color, obj.markerfacecolor)))
         if (! isempty (pt2))
           fprintf (plot_stream, " pointtype %s", pt2);
-          style{sidx} = strcat (style{sidx}, "points");
+          style{sidx} = [style{sidx} "points"];
         endif
         if (isfield (obj, "markersize"))
           fprintf (plot_stream, " pointsize %f", obj.markersize / 3);
@@ -1909,7 +1909,7 @@
         if (sidx == 1 && ((length (style{sidx}) == 5
             && strncmp (style{sidx}, "lines", 5)) || isempty (style{sidx})))
           if (! isempty (pt))
-            style{sidx} = strcat (style{sidx}, "points");
+            style{sidx} = [style{sidx} "points"];
             fprintf (plot_stream, " pointtype %s", pt);
           endif
           if (isfield (obj, "markersize"))
@@ -2173,7 +2173,7 @@
       fmt = "10^{%T}";
     endif
     if (sgn < 0)
-      fmt = strcat ("-", fmt);
+      fmt = ["-" fmt];
     endif
   else
     fmt = "%g";
--- a/scripts/plot/util/private/__gnuplot_print__.m	Mon Nov 30 09:15:58 2015 -0500
+++ b/scripts/plot/util/private/__gnuplot_print__.m	Mon Nov 30 08:20:08 2015 -0800
@@ -101,7 +101,7 @@
         suffix = "eps";
       endif
       local_drawnow ([term " " gp_opts],
-                     strcat (name, ".", suffix), opts);
+                     [name "." suffix], opts);
     case "tikz"
       if (__gnuplot_has_terminal__ ("tikz"))
         local_drawnow (["lua tikz " gp_opts], opts.name, opts);
--- a/scripts/plot/util/private/__opengl_print__.m	Mon Nov 30 09:15:58 2015 -0500
+++ b/scripts/plot/util/private/__opengl_print__.m	Mon Nov 30 08:20:08 2015 -0800
@@ -90,7 +90,7 @@
         if (any (strcmpi (ext, {".ps", ".tex", "."})))
           opts.name = opts.name(1:end-numel(ext));
         endif
-        opts.name = strcat (opts.name, ".ps");
+        opts.name = [opts.name ".ps"];
         cmd = sprintf ("%s | %s > %s", cmd_pstoedit, cmd_fig2dev, opts.name);
         gl2ps_device = {"eps"};
         pipeline = {cmd};
--- a/scripts/plot/util/private/__print_parse_opts__.m	Mon Nov 30 09:15:58 2015 -0500
+++ b/scripts/plot/util/private/__print_parse_opts__.m	Mon Nov 30 08:20:08 2015 -0800
@@ -263,7 +263,7 @@
   endif
 
   if (dot == 0 && ! isempty (arg_st.name))
-    arg_st.name = strcat (arg_st.name, ".", default_suffix);
+    arg_st.name = [arg_st.name "." default_suffix];
   endif
 
   if (arg_st.append_to_file)
@@ -460,7 +460,7 @@
         cmd = strrep (cmd, "/", "\\");
       endif
       if (any (cmd == " "))
-        cmd = strcat ('"', strrep (cmd, '"', '""') ,'"');
+        cmd = ['"' strrep(cmd, '"', '""') '"'];
       endif
     endif
   endif
@@ -599,7 +599,7 @@
       case {"b", "tabloid"}
         papersize = "11x17";
       case {"c", "d", "e"}
-        papersize = strcat ("arch", papersize);
+        papersize = ["arch" papersize];
     endswitch
     if (strncmp (papersize, "arch", 4))
       papersize(end) = upper (papersize(end));
--- a/scripts/plot/util/saveas.m	Mon Nov 30 09:15:58 2015 -0500
+++ b/scripts/plot/util/saveas.m	Mon Nov 30 08:20:08 2015 -0800
@@ -96,11 +96,11 @@
     [~, ~, ext] = fileparts (filename);
 
     if (isempty (ext))
-      filename = strcat (filename, ".", fmt);
+      filename = [filename "." fmt];
     endif
   endif
 
-  prt_opt = strcat ("-d", tolower (fmt));
+  prt_opt = ["-d" tolower(fmt)];
 
   print (fig, filename, prt_opt);
 
--- a/scripts/testfun/private/html_compare_plot_demos.m	Mon Nov 30 09:15:58 2015 -0500
+++ b/scripts/testfun/private/html_compare_plot_demos.m	Mon Nov 30 08:20:08 2015 -0800
@@ -95,16 +95,16 @@
       ## set default
       column_header = upper (toolkits{t});
       if (isfield (in, toolkits{t}))
-        column_header = strcat (column_header, in.(toolkits{t}));
+        column_header = [column_header, in.(toolkits{t})];
       endif
       fprintf (fid, '<th>%s <a href="%s/diary.log">diary</a></th>\n', ...
                     column_header, toolkits{t});
     endfor
     fprintf (fid, "</tr>\n");
 
-    for m = 1:numel(in.figfiles)
+    for m = 1:numel (in.figfiles)
       [~, file] = fileparts (in.figfiles{m});
-      fn = strcat (file, ".", in.fmt);
+      fn = [file "." in.fmt];
       fprintf (fid, "<tr>\n");
       for k = toolkits
         ffn = fullfile (k{:}, fn);