830 | | |
831 | | text_t args_prefix = substr(args_name.begin(),args_name.begin()+prefix_len+3); |
832 | | |
833 | | if (args_prefix == (macro_prefix+"md.")) { |
834 | | text_t args_val = args[args_name]; |
835 | | |
836 | | text_t args_suffix = substr(args_name.begin()+prefix_len+3,args_name.end()); |
837 | | |
838 | | text_tarray mdvalues; |
839 | | splitchar (args_val.begin(), args_val.end(), ',', mdvalues); |
840 | | int numvalues = mdvalues.size(); |
841 | | |
842 | | for (int i = 0; i < numvalues; ++i) { |
843 | | if (!mdvalues[i].empty()) { |
844 | | |
845 | | decode_cgi_arg(mdvalues[i]); |
846 | | |
847 | | metadata_file += " <Metadata mode=\"accumulate\" name=\""; |
848 | | metadata_file += args_suffix; |
849 | | metadata_file += "\">"; |
850 | | metadata_file += mdvalues[i]; |
851 | | metadata_file += "</Metadata>\n"; |
852 | | |
| 830 | int args_name_len = args_name.size(); |
| 831 | |
| 832 | if(args_name_len >= prefix_len+3) { // Only now can we substring args_name by prefix_len+3 |
| 833 | text_t args_prefix; |
| 834 | if(args_name_len == prefix_len+3) { |
| 835 | args_prefix = args_name; |
| 836 | } else { // >, so substring |
| 837 | args_prefix = substr(args_name.begin(),args_name.begin()+prefix_len+3); |
| 838 | } |
| 839 | |
| 840 | if (args_prefix == (macro_prefix+"md.")) { |
| 841 | text_t args_val = args[args_name]; |
| 842 | |
| 843 | text_t args_suffix = substr(args_name.begin()+prefix_len+3,args_name.end()); |
| 844 | |
| 845 | text_tarray mdvalues; |
| 846 | splitchar (args_val.begin(), args_val.end(), ',', mdvalues); |
| 847 | int numvalues = mdvalues.size(); |
| 848 | |
| 849 | for (int i = 0; i < numvalues; ++i) { |
| 850 | if (!mdvalues[i].empty()) { |
| 851 | |
| 852 | decode_cgi_arg(mdvalues[i]); |
| 853 | |
| 854 | metadata_file += " <Metadata mode=\"accumulate\" name=\""; |
| 855 | metadata_file += args_suffix; |
| 856 | metadata_file += "\">"; |
| 857 | metadata_file += mdvalues[i]; |
| 858 | metadata_file += "</Metadata>\n"; |
| 859 | |
| 860 | } |
| 861 | } |
| 862 | } |