/** Parse a option group option. */ void ParseGroupOption(const TokenNode *tp, struct GroupType *group, const char *option) { int x; if(!option) { return; } /* Look up the option in the option map using binary search. */ x = FindValue(OPTION_MAP, OPTION_MAP_COUNT, option); if(x >= 0) { AddGroupOption(group, (OptionType)x); return; } /* These options have arguments and so we handled them separately. */ if(!strncmp(option, "layer:", 6)) { const WinLayerType layer = ParseLayer(tp, option + 6); AddGroupOptionUnsigned(group, OPTION_LAYER, layer); } else if(!strncmp(option, "desktop:", 8)) { const unsigned int desktop = (unsigned int)atoi(option + 8); AddGroupOptionUnsigned(group, OPTION_DESKTOP, desktop); } else if(!strncmp(option, "icon:", 5)) { AddGroupOptionString(group, OPTION_ICON, option + 5); } else if(!strncmp(option, "opacity:", 8)) { const unsigned int opacity = ParseOpacity(tp, option + 8); AddGroupOptionUnsigned(group, OPTION_OPACITY, opacity); } else { ParseError(tp, "invalid Group Option: %s", option); } }
/** Parse a option group option. */ void ParseGroupOption(const TokenNode *tp, struct GroupType *group, const char *option) { int x; if(!option) { return; } for(x = 0; OPTION_MAP[x].name; x++) { if(!strcmp(option, OPTION_MAP[x].name)) { AddGroupOption(group, OPTION_MAP[x].option); return; } } /* These options have arguments and so we handled them separately. */ if(!strncmp(option, "layer:", 6)) { const WinLayerType layer = ParseLayer(tp, option + 6); AddGroupOptionUnsigned(group, OPTION_LAYER, layer); } else if(!strncmp(option, "desktop:", 8)) { const unsigned int desktop = (unsigned int)atoi(option + 8); AddGroupOptionUnsigned(group, OPTION_DESKTOP, desktop); } else if(!strncmp(option, "icon:", 5)) { AddGroupOptionString(group, OPTION_ICON, option + 5); } else if(!strncmp(option, "opacity:", 8)) { const unsigned int opacity = ParseOpacity(tp, option + 8); AddGroupOptionUnsigned(group, OPTION_OPACITY, opacity); } else { ParseError(tp, "invalid Group Option: %s", option); } }