| 774 | } |
| 775 | |
| 776 | void addfavcategory(const char *refdes) |
| 777 | { |
| 778 | string text, val; |
| 779 | char alx[FC_NUM]; |
| 780 | if(!refdes) { intret(0); return; } |
| 781 | filtertext(text, refdes, FTXT__FAVCATEGORY); |
| 782 | if(!text[0]) { intret(0); return; } |
| 783 | loopv(favcats) if(!strcmp(favcats[i], text)) { intret(i + 1); return; } |
| 784 | favcats.add(newstring(text)); |
| 785 | bool oldpersist = persistidents; |
| 786 | persistidents = false; // only keep changed values |
| 787 | loopi(FC_NUM) alx[i] = getalias(favcatargname(text, i)) ? 1 : 0; |
| 788 | loopi(3) |
| 789 | { |
| 790 | formatstring(val)("%d", *text & (1 << i) ? 90 : 10); |
| 791 | if(!alx[i + FC_RED]) alias(favcatargname(text, i + FC_RED), val); |
| 792 | } |
| 793 | formatstring(val)("favourites %d", favcats.length()); |
| 794 | const int defk[] = { FC_WEIGHT, FC_DESC, FC_TAG, FC_KEYS, FC_IGNORE, FC_ALPHA }; |
| 795 | const char *defv[] = { "0", val, refdes, "", "", "20" }; |
| 796 | loopi(sizeof(defk)/sizeof(defk[0])) { if(!alx[defk[i]]) alias(favcatargname(text, defk[i]), defv[i]); } |
| 797 | persistidents = oldpersist; |
| 798 | intret(favcats.length()); |
| 799 | } |
| 800 | |
| 801 | void listfavcats() |
| 802 | { |
nothing calls this directly
no test coverage detected