0001 function n=v_voicebox_update(fn,m)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 vbp='activlev|activlevg|atan2sc|axisenlarge|bark2frq|berk2prob|besselratio|besselratioi|bitsprec|cblabel|ccwarpf|cent2frq|cep2pow|choosenk|choosrnk|convfft|correlogram|distchar|distchpf|disteusq|distisar|distispf|distitar|distitpf|ditherq|dlyapsq|dualdiag|dypsa|enframe|entropy|erb2frq|estnoiseg|estnoisem|ewgrpdel|fig2emf|fig2pdf|figbolden|filtbankm|filterbank|finishat|fopenmkd|frac2bin|fram2wav|frq2bark|frq2cent|frq2erb|frq2mel|frq2midi|fxpefac|fxrapt|gammabank|gammalns|gausprod|gaussmix|gaussmixd|gaussmixg|gaussmixk|gaussmixm|gaussmixp|gaussmixt|glotlf|glotros|gmmlpdf|histndim|hostipinfo|huffman|hypergeom1f1|imagehomog|importsii|irdct|irfft|kmeanhar|kmeanlbg|lambda2rgb|ldatrace|lin2pcma|lin2pcmu|lognmpdf|logsum|lpcaa2ao|lpcaa2dl|lpcaa2rf|lpcao2rf|lpcar2am|lpcar2cc|lpcar2db|lpcar2ff|lpcar2fm|lpcar2im|lpcar2ls|lpcar2pf|lpcar2pp|lpcar2ra|lpcar2rf|lpcar2rr|lpcar2zz|lpcauto|lpcbwexp|lpccc2ar|lpccc2cc|lpccc2db|lpccc2ff|lpccc2pf|lpcconv|lpccovar|lpccw2zz|lpcdb2pf|lpcdl2aa|lpcff2pf|lpcfq2zz|lpcifilt|lpcim2ar|lpcis2rf|lpcla2rf|lpclo2rf|lpcls2ar|lpcpf2cc|lpcpf2ff|lpcpf2rr|lpcpp2cw|lpcpp2pz|lpcpz2zz|lpcra2ar|lpcra2pf|lpcra2pp|lpcrand|lpcrf2aa|lpcrf2ao|lpcrf2ar|lpcrf2is|lpcrf2la|lpcrf2lo|lpcrf2rr|lpcrr2am|lpcrr2ar|lpcss2zz|lpcstable|lpczz2ar|lpczz2cc|lpczz2ss|m2htmlpwd|maxfilt|maxgauss|meansqtf|mel2frq|melbankm|melcepst|midi2frq|minspane|mintrace|modspect|momfilt|mos2pesq|nearnonz|normcdflog|overlapadd|paramsetch|pcma2lin|pcmu2lin|pdfmoments|peak2dquad|permutes|pesq2mos|phon2sone|polygonarea|polygonwind|polygonxline|potsband|pow2cep|prob2berk|psycdigit|psycest|psycestu|psychofunc|qrabs|qrdivide|qrdotdiv|qrdotmult|qrmult|qrpermute|quadpeak|randfilt|randiscr|randvec|rdct|readaif|readau|readcnx|readflac|readhtk|readsfs|readsph|readwav|rectifyhomog|regexfiles|rfft|rhartley|rnsubset|rotation|rotax2qr|roteu2qr|roteu2ro|rotmc2qc|rotmr2qr|rotpl2ro|rotqc2mc|rotqc2qr|rotqr2ax|rotqr2eu|rotqr2mr|rotqr2qc|rotqr2ro|rotqrmean|rotqrvec|rotro2eu|rotro2pl|rotro2qr|rsfft|sapisynth|schmitt|sigalign|skew3d|snrseg|sone2phon|soundspeed|specsub|specsubm|spendred|spgrambw|sphrharm|sprintcpx|sprintsi|ssubmmse|ssubmmsev|stdspectrum|stoi2prob|teager|texthvc|tilefigs|txalign|unixwhich|upolyhedron|usasi|vadsohn|voicebox|vonmisespdf|wavread|wavwrite|winenvar|writehtk|writewav|xticksi|xyzticksi|yticksi|zerocros|zerotrim|zoomfft';
0020 if nargin<2 || isempty(m)
0021 m='';
0022 end
0023 lm=lower(m);
0024 if nargin<1 || isempty(fn)
0025 fn='.';
0026 end
0027 if exist(fn,'dir')
0028 ff=v_regexfiles('\.m$',fn,char('n'+('r'-'n')*any(m=='r')));
0029 elseif exist(fn,'file')
0030 ff={fn};
0031 else
0032 error('first argument must be a file or folder name');
0033 end
0034 n=0;
0035 for i=1:length(ff)
0036 fid=fopen(ff{i},'rt');
0037 s=fread(fid,'*char')';
0038 fclose(fid);
0039 t=regexprep(s,['\<(' vbp ')\>(?![^''\n]*''[^''\n]*\n)'],'v_$1');
0040 if numel(t)>numel(s)
0041 if ~any(m=='b')
0042 if ~movefile(ff{i},[ff{i} '.old'])
0043 error(sprintf('Cannot rename %s\n',ff{i}));
0044 end
0045 end
0046 fid=fopen(ff{i},'wt');
0047 if fid<0
0048 error(sprintf('Cannot write to %s\n',ff{i}));
0049 end
0050 fwrite(fid,t,'*char');
0051 fclose(fid);
0052 n=n+1;
0053 if any(lm=='v')
0054 nch=floor((length(t)-length(s))/2);
0055 if nch>1
0056 fprintf(1,'%d changes in %s\n',nch,ff{i});
0057 else
0058 fprintf(1,'%d change in %s\n',nch,ff{i});
0059 end
0060 end
0061 elseif any(m=='V')
0062 fprintf(1,'No changes in %s\n',ff{i});
0063 end
0064 end
0065 if ~any(m=='s')
0066 if any(lm=='v') && n>0
0067 fprintf(1,'===========\n');
0068 end
0069 if length(ff)>1
0070 fprintf(1,'%d of %d files updated\n',n,length(ff));
0071 else
0072 fprintf(1,'%d of %d file updated\n',n,length(ff));
0073 end
0074 end