Ревизия кода на 14.05.2006: Инспектор: Игорь Зиновик Файл ngfilter.c - строка 39: 'c' плохое имя для переменной, которая хранит опцию во время выполнения программы - строка 67: функция usage() завершает программу сама, нет необходимости делать exit() - комментарий /* Show verbose information */ следует оставить только в одном месте Файл ngfilter_proto.h - отсутствует автор файла Файл ngindex.c - строка 45: 'i' плохое имя для переменной, которая хранит опцию во время выполнения программы - строка 179: ошибка 'dirent' - структура описывающая директорию, но не сама директория, заменить на 'directory' - строка 186: 'Function OK: %s' нет перевода строки, и лучше заменить на сообщение вида 'Using function: %s\n' - строки 188-216: нарушена логика, сначала выводятся сообщения что все параметры заданы верно и после этого производится проверка их на корректность - строка 221: логика цыкла сложна, здесь лучше подойдёт не for, а while Файл ngindex_proto.h - отсутствует автор файла Файл print_records.c - строка 29: нет поясняющего комментария к функции print_records - строки 75-110: код который можно собрать в один метод - строки 140, 141: возврат системного вызова write не проверяется - строки 147, 148: возврат системного вызова write не проверяется - строки 171-204: можно собрать в один метод - строки 207-240: можно собрать в один метод - строки 242-270: можно собрать в один метод - строки 273-318: можно собрать в один метод - есть утечки памяти, когда функция выходит по return (-1) память отведённая для one_line не освобождается Файл print_records.h - отсутствует автор файла и стандартная шапка - прототип не соответствует прототипу объявленному в print_record.c Файл process_conditions.c - строка 65: path_to_conditions не изменяется, следует объявить с квалификатором const - строка 74: файл открывается, но не закрывается - строки 87-96: можно собрать в отдельный метод - строка 321: создаётся ложное впечатление что переменная 'j' управляет цыклом, здесь лучше использовать while - строка 321: имя 'j' плохое для перменной которая содержит число полей по которым задано условие поиска - строка 362: search_type_fl не изменяется, следует объявить как const - строка 367: 24 - магическое число - строка 377: создаётся ложное впечатление что переменная 'j' управляет цыклом - строки 381, 385: сложные выражения надо упростить - строка 431: 24 - магическое число - строка 446: сложный цыкл for, лучше использовать while - строка 477: search_type_fl не изменяется, следует объявить как const - строки 496, 500: сложные выражения надо упростить - строка 561: search_type_fl не изменяется, следует объявить как const - строки 580, 584: сложные выражения надо упростить - строка 637: search_type_fl не изменяется, следует объявить как const - строки 657, 661: сложные выражения надо упростить - строка 727: плохие имена переменных 'YY', 'MM', 'DD', 'hh', 'mm', 'ss' - строка 732: возвращаемое значени функции объявлено как unsigned long, но функция возвращает -1 - строка 745: 7 - магическое число - строка 749: возвращаемое значени функции объявлено как unsigned long, но функция возвращает -1 - строки 751, 774: можно собрать в отдельный метод - строка 776: много магических чисел, сложное выражение, здест явно нужен комментарий - строки 776-821: можно собрать в отдельный метод - строка 814: надо пояснить выражение в операторе if - строка 819: много магических числе, сложное выражение Файл process_template.c - строка 30: нет поясняющего комментария к функции - строка 31: path_to_template не изменяется, следует объявить как const - строка 66: файл открывается, но не закрывается - строка 72: неверное сообщение об ошибке "Can't open file ngfilter.conf for reading.", однако была попытка открыть файл-шаблон - строка 112: выражение MAX_STRING_LEN - 1 лучше взять в скобки - строки 164-180: можно собрать в отдельный метод - строка 285: память отведенная для new_attr не освобождается в случае успешного завершения Файл rec_description.c - нет автора файла Файл search_records.c - строка 31: нет поясняющего комментария для функции search_records Файл search_records.h - отсутствует автор файла Файл structures.h - отсутствует автор файла