| 846 | } |
| 847 | |
| 848 | const char *favcatcheck(serverinfo &si, const char *ckeys, char *autokeys = NULL) |
| 849 | { |
| 850 | if(!ckeys) return NULL; |
| 851 | static char *nkeys = NULL; |
| 852 | const char *sep = " \t\n\r"; |
| 853 | char *keys = newstring(ckeys), *b, *k = strtok_r(keys, sep, &b); |
| 854 | bool res = false; |
| 855 | DELETEA(nkeys); |
| 856 | nkeys = newstring(strlen(ckeys)); |
| 857 | nkeys[0] = '\0'; |
| 858 | while(k) |
| 859 | { |
| 860 | if(favcatcheckkey(si, k)) |
| 861 | { |
| 862 | res = true; |
| 863 | if(autokeys && !(isdigit(*k) && strchr(k, ':'))) concatformatstring(autokeys, *autokeys ? " %s" : "%s", k); |
| 864 | } |
| 865 | else |
| 866 | { |
| 867 | if(*nkeys) strcat(nkeys, " "); |
| 868 | strcat(nkeys, k); |
| 869 | } |
| 870 | k = strtok_r(NULL, sep, &b); |
| 871 | } |
| 872 | delete[] keys; |
| 873 | return res ? nkeys : NULL; |
| 874 | } |
| 875 | |
| 876 | void serverbrowseralternativeviews(int shiftdirection) |
| 877 | { |
no test coverage detected