# HG changeset patch # User Rik # Date 1448900408 28800 # Node ID 8513c84a13cbfc46a7bf7a5f1f0d95af429c02a8 # Parent 29861f5f28c5d23acd8b300108099823a53ad678 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. diff -r 29861f5f28c5 -r 8513c84a13cb scripts/gui/private/__file_filter__.m --- 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 diff -r 29861f5f28c5 -r 8513c84a13cb scripts/gui/private/__get_funcname__.m --- 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 diff -r 29861f5f28c5 -r 8513c84a13cb scripts/gui/uigetfile.m --- 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 (); diff -r 29861f5f28c5 -r 8513c84a13cb scripts/gui/uiputfile.m --- 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 (); diff -r 29861f5f28c5 -r 8513c84a13cb scripts/help/__makeinfo__.m --- 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 diff -r 29861f5f28c5 -r 8513c84a13cb scripts/help/print_usage.m --- 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 diff -r 29861f5f28c5 -r 8513c84a13cb scripts/pkg/private/fix_version.m --- 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 diff -r 29861f5f28c5 -r 8513c84a13cb scripts/plot/appearance/axis.m --- 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 diff -r 29861f5f28c5 -r 8513c84a13cb scripts/plot/draw/private/__add_datasource__.m --- 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; diff -r 29861f5f28c5 -r 8513c84a13cb scripts/plot/util/print.m --- 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)); diff -r 29861f5f28c5 -r 8513c84a13cb scripts/plot/util/private/__gnuplot_draw_axes__.m --- 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"; diff -r 29861f5f28c5 -r 8513c84a13cb scripts/plot/util/private/__gnuplot_print__.m --- 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); diff -r 29861f5f28c5 -r 8513c84a13cb scripts/plot/util/private/__opengl_print__.m --- 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}; diff -r 29861f5f28c5 -r 8513c84a13cb scripts/plot/util/private/__print_parse_opts__.m --- 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)); diff -r 29861f5f28c5 -r 8513c84a13cb scripts/plot/util/saveas.m --- 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); diff -r 29861f5f28c5 -r 8513c84a13cb scripts/testfun/private/html_compare_plot_demos.m --- 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, '%s diary\n', ... column_header, toolkits{t}); endfor fprintf (fid, "\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, "\n"); for k = toolkits ffn = fullfile (k{:}, fn);