LINUX.ORG.RU

История изменений

Исправление thunar, (текущая версия) :

Да вполне себе. Тут по-моему вообще вместо излишних if просто бы сразу класть результат вычисления в нужный бит.

condition |= (phonebookEntry->index >= 0) << 0;
condition |= (phonebookEntry->telNo != 0) << 1;
condition |= (phonebookEntry->name != nullptr) << 2;
Или завернуть в структуру с именованными битовыми полями:
typedef struct {
	char is_index : 1;
	char is_telNo : 1;
	char is_name  : 1;
} flags_t;

flags_t check_entry (phonebookEntry_t *entry) {
	flags_t flags;
	
	flags.is_index = entry->index >= 0;
	flags.is_telNo = entry->telNo != 0;
	flags.is_name  = entry->name != nullptr;
	
	return flags;
}

Исправление thunar, :

Да вполне себе. Тут по-моему вообще вместо излишних if просто бы сразу класть результат вычисления в нужный бит.

condition |= (phonebookEntry->index >= 0) << 0;
condition |= (phonebookEntry->telNo != 0) << 1;
condition |= (phonebookEntry->name != nullptr) << 2;
Или завернуть в структуру с именованными битовыми полями:
typedef struct {
	char is_index : 1;
	char is_telNo : 1;
	char is_name  : 1;
} flags_t;

flags_t check_flags (phonebookEntry_t *entry) {
	flags_t flags;
	
	flags.is_index = phonebookEntry->index >= 0;
	flags.is_telNo = phonebookEntry->telNo != 0;
	flags.is_name  = phonebookEntry->name != nullptr;
	
	return flags;
}

Исправление thunar, :

Да вполне себе. Тут по-моему вообще вместо излишних if просто бы сразу класть результат вычисления в нужный бит.

condition |= (phonebookEntry->index >= 0) << 0;
condition |= (phonebookEntry->telNo != 0) << 1;
condition |= (phonebookEntry->name != nullptr) << 2;
А ещё лучше этот кондишон в структуру с именованными битовыми полями:
typedef struct {
	char is_index : 1;
	char is_telNo : 1;
	char is_name  : 1;
} flags_t;

flags_t check_flags (phonebookEntry_t *entry) {
	flags_t flags;
	
	flags.is_index = phonebookEntry->index >= 0;
	flags.is_telNo = phonebookEntry->telNo != 0;
	flags.is_name  = phonebookEntry->name != nullptr;
	
	return flags;
}

Исправление thunar, :

Да вполне себе. Тут по-моему вообще вместо излишних if просто бы сразу класть результат вычисления в нужный бит.

condition |= (phonebookEntry->index >= 0) << 0;
condition |= (phonebookEntry->telNo != 0) << 1;
condition |= (phonebookEntry->name != nullptr) << 2;
А ещё лучше этот кондишон в структуру с именованными битовыми полями.

Исправление thunar, :

Да вполне себе. Тут по-моему вообще вместо излишних if просто бы сразу класть результат вычисления в нужный бит.

condition |= (phonebookEntry->index >= 0) << 0;
condition |= (phonebookEntry->telNo != 0) << 1;
condition |= (phonebookEntry->name != '\0') << 2;
А ещё лучше этот кондишон в структуру с именованными битовыми полями.

Исходная версия thunar, :

Да вполне себе. Тут по-моему вообще вместо излишних if просто бы сразу класть результат вычисления в нужный бит.

condition |= (phonebookEntry->index >= 0) << 0;
condition |= (phonebookEntry->telNo != 0) << 1;
condition |= (phonebookEntry->name != '\0') << 2;

А ещё лучше этот кондишон в структуру с именованными битовыми полями.