mirror of
https://github.com/gryf/wmaker.git
synced 2026-04-05 23:13:32 +02:00
wmaker: factorize duplicated code
This patch is factorizing is_same and getBool functions in misc. is_same is renamed to WMStrEqual getBool is renamed to WMPLGetBool to prevent name collision issues.
This commit is contained in:
committed by
Carlos R. Mafra
parent
92e1e9fb0b
commit
1e63c590b6
@@ -123,35 +123,6 @@ static void make_keys(void)
|
||||
sNo = WMCreatePLString("No");
|
||||
}
|
||||
|
||||
static int getBool(WMPropList * value)
|
||||
{
|
||||
char *val;
|
||||
|
||||
if (!WMIsPLString(value)) {
|
||||
return 0;
|
||||
}
|
||||
val = WMGetFromPLString(value);
|
||||
if (val == NULL)
|
||||
return 0;
|
||||
|
||||
if ((val[1] == '\0' && (val[0] == 'y' || val[0] == 'Y'))
|
||||
|| strcasecmp(val, "YES") == 0) {
|
||||
|
||||
return 1;
|
||||
} else if ((val[1] == '\0' && (val[0] == 'n' || val[0] == 'N'))
|
||||
|| strcasecmp(val, "NO") == 0) {
|
||||
return 0;
|
||||
} else {
|
||||
int i;
|
||||
if (sscanf(val, "%i", &i) == 1) {
|
||||
return (i != 0);
|
||||
} else {
|
||||
wwarning(_("can't convert \"%s\" to boolean"), val);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static unsigned getInt(WMPropList * value)
|
||||
{
|
||||
char *val;
|
||||
@@ -423,11 +394,11 @@ static WSavedState *getWindowState(WScreen * scr, WMPropList * win_state)
|
||||
|
||||
value = WMGetFromPLDictionary(win_state, sShaded);
|
||||
if (value != NULL)
|
||||
state->shaded = getBool(value);
|
||||
state->shaded = WMPLGetBool(value);
|
||||
|
||||
value = WMGetFromPLDictionary(win_state, sMiniaturized);
|
||||
if (value != NULL)
|
||||
state->miniaturized = getBool(value);
|
||||
state->miniaturized = WMPLGetBool(value);
|
||||
|
||||
value = WMGetFromPLDictionary(win_state, sMaximized);
|
||||
if (value != NULL) {
|
||||
@@ -436,7 +407,7 @@ static WSavedState *getWindowState(WScreen * scr, WMPropList * win_state)
|
||||
|
||||
value = WMGetFromPLDictionary(win_state, sHidden);
|
||||
if (value != NULL)
|
||||
state->hidden = getBool(value);
|
||||
state->hidden = WMPLGetBool(value);
|
||||
|
||||
value = WMGetFromPLDictionary(win_state, sShortcutMask);
|
||||
if (value != NULL) {
|
||||
@@ -456,20 +427,6 @@ static WSavedState *getWindowState(WScreen * scr, WMPropList * win_state)
|
||||
return state;
|
||||
}
|
||||
|
||||
static inline int is_same(const char *x, const char *y)
|
||||
{
|
||||
if ((x == NULL) && (y == NULL))
|
||||
return 1;
|
||||
|
||||
if ((x == NULL) || (y == NULL))
|
||||
return 0;
|
||||
|
||||
if (strcmp(x, y) == 0)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
void wSessionRestoreState(WScreen *scr)
|
||||
{
|
||||
WSavedState *state;
|
||||
@@ -556,9 +513,9 @@ void wSessionRestoreState(WScreen *scr)
|
||||
if (dock != NULL) {
|
||||
for (j = 0; j < dock->max_icons; j++) {
|
||||
btn = dock->icon_array[j];
|
||||
if (btn && is_same(instance, btn->wm_instance) &&
|
||||
is_same(class, btn->wm_class) &&
|
||||
is_same(command, btn->command) &&
|
||||
if (btn && WMStrEqual(instance, btn->wm_instance) &&
|
||||
WMStrEqual(class, btn->wm_class) &&
|
||||
WMStrEqual(command, btn->command) &&
|
||||
!btn->launching) {
|
||||
found = 1;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user