| 15 | } |
| 16 | |
| 17 | const char* docu_string(const char* str) |
| 18 | { |
| 19 | if(getenv("NETGEN_DOCUMENTATION_RST_FORMAT")) |
| 20 | return str; |
| 21 | std::string replacement(str); |
| 22 | bool replaced = false; |
| 23 | while(true) |
| 24 | { |
| 25 | auto start_pos = replacement.find(":any:`"); |
| 26 | if(start_pos==std::string::npos) |
| 27 | break; |
| 28 | else |
| 29 | replaced = true; |
| 30 | auto rest = replacement.substr(start_pos+6); //first character after ":any:`" |
| 31 | auto inner_end = rest.find("<"); |
| 32 | auto end = rest.find("`"); |
| 33 | if(inner_end==std::string::npos) |
| 34 | inner_end = end; |
| 35 | replacement.replace(start_pos,end+7,rest.substr(0,inner_end)); |
| 36 | } |
| 37 | if(!replaced) |
| 38 | return str; |
| 39 | char * newchar = new char[replacement.size()+1]; |
| 40 | std::copy(replacement.begin(),replacement.end(),newchar); |
| 41 | newchar[replacement.size()] = '\0'; |
| 42 | return newchar; |
| 43 | } |
| 44 | |
| 45 | |
| 46 | template<typename T, typename TSCAL, typename TCLASS> |
no test coverage detected