LINUX.ORG.RU

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

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

Оба варианта плохие. В твоём куча тавтологии.

Как я понял, проверку на директорию поставить рядом с проверкой опции не получается, это разные блоки кода, поэтому нормальный вариант получается как-то так:

Вместо первой сложной формулы это:

print_file_names = (filename_option?filename_option:(num_operands>1));
Вместо «хакерской» формулы для директорий это:
if(!print_file_names) print_file_names = (recurse && S_ISDIR(st.st_mode)) ? 1 : -1;
(кстати компилятор сам её оптимизирует в такое же хакерство на асме скорее всего)

Ну и в обоих переменных 0 = неопределено.

Хороший короткий и интуитивно понятный код. Без неочевидных построений как у них и без тавтологических простыней как у тебя.

Впрочем, поскольку у рекурсивного прохода по директориям должен быть какой-то свой обработчик (когда мы уже выяснили что это директория и залезли внутрь), то лучше просто в его начало вставить

if(!print_file_names) print_file_names = 1;

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

Оба варианта плохие. В твоём куча тавтологии.

Как я понял, проверку на директорию поставить рядом с проверкой опции не получается, это разные блоки кода, поэтому нормальный вариант получается как-то так:

Вместо первой сложной формулы это:

print_file_names = (filename_option?filename_option:(num_operands>1));
Вместо «хакерской» формулы для директорий это:
if(!print_file_names) print_file_names = (recurse && S_ISDIR(st.st_mode)) ? 1 : -1;
(кстати компилятор сам её оптимизирует в такое же хакерство на асме скорее всего)

Ну и в обоих переменных 0 = неопределено.

Хороший короткий и интуитивно понятный код. Без неочевидных построений как у них и без тавтологических простыней как у тебя.

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

Оба варианта плохие. В твоём куча тавтологии.

Как я понял, проверку на директорию поставить рядом с проверкой опции не получается, это разные блоки кода, поэтому нормальный вариант получается как-то так:

Вместо первой сложной формулы это:

print_file_names = (filename_option?filename_option:(num_operands>1));
Вместо «хакерской» формулы для директорий это:
if(!print_file_names) print_file_names = S_ISDIR(st.st_mode) ? 1 : -1;
(кстати компилятор сам её оптимизирует в такое же хакерство на асме скорее всего)

Ну и в обоих переменных 0 = неопределено.

Хороший короткий и интуитивно понятный код. Без неочевидных построений как у них и без тавтологических простыней как у тебя.

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

Оба варианта плохие. В твоём куча тавтологии.

Как я понял, проверку на директорию поставить рядом с проверкой опции не получается, это разные блоки кода, поэтому нормальный вариант получается как-то так:

Вместо первой сложной формулы это:

print_file_names = (filename_option?filename_option:(num_operands>1));
Вместо «хакерской» формулы для директорий это:
if(!print_file_names) print_file_names = S_ISDIR(st.st_mode) ? 1 : -1;
Ну и в обоих переменных 0 = неопределено.

Хороший короткий и интуитивно понятный код. Без неочевидных построений как у них и без тавтологических простыней как у тебя.

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

Оба варианта плохие. В твоём куча тавтологии.

Как я понял, проверку на директорию поставить рядом с проверкой опции не получается, это разные блоки кода, поэтому нормальный вариант получается как-то так:

Вместо первой сложной формулы это:

print_file_names = (filename_option?filename_option:(num_operands>1));
Вместо «хакерской» формулы для директорий это:
if(!print_file_names) print_file_name = S_ISDIR(st.st_mode) ? 1 : -1;
Ну и в обоих переменных 0 = неопределено.

Хороший короткий и интуитивно понятный код. Без неочевидных построений как у них и без тавтологических простыней как у тебя.

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

Оба варианта плохие. В твоём куча тавтологии.

Как я понял, проверку на директорию поставить рядом с проверкой опции не получается, это разные блоки кода, поэтому нормальный вариант получается как-то так:

Вместо первой сложной формулы это:

print_file_names = (filename_option?filename_option:(num_operands>1));
Вместо «хакерской» формулы для директорий это:
if(!print_file_names) S_ISDIR(st.st_mode) ? 1 : -1;
Ну и в обоих переменных 0 = неопределено.

Хороший короткий и интуитивно понятный код. Без неочевидных построений как у них и без тавтологических простыней как у тебя.