История изменений
Исправление
Norong,
(текущая версия)
:
Ага, уловил. \n там принципиально быть не может (обрубается функцией readlines). Добавил проверку на != '\0' и добавил '\0' в допустимые символы:
#define LETNUMSPACE(a) (((a >= 'a' && a <= 'Z') || (a >= '0' && a <= '9') || a == ' ' || a == '\0') ? 1 : 0)
#define CSDIFF ('A' - 'a')
extern int ignorecase;
extern int dirtype;
int equal, i, j;
for (i = 0, j = 0; (equal = (((CAPITAL(s[i]) && ignorecase) ? (s[i] - CSDIFF) : s[i]) == ((CAPITAL(t[j]) && ignorecase) ? (t[j] - CSDIFF) : t[j]))) || dirtype; i++, j++) {
if (!equal && dirtype) {
if (!LETNUMSPACE(s[i])) {
while (!LETNUMSPACE(s[i]) && s[i] != '\0')
++i;
--i;
--j;
}
else if (!LETNUMSPACE(t[j])) {
while (!LETNUMSPACE(t[j]) && t[j] != '\0')
++j;
--i;
--j;
}
}
directory
dirfctory
dirgctory
dir/ctory
dir/story
direstory
dirfstory
dir/file
dir/gile
dir/story
directory
direstory
dirgctory
dirfstory
dirfctory
dir/file
dir/ctory
dir/gile
Исправление
Norong,
:
Ага, уловил. \n там принципиально быть не может (обрубается функцией readlines). Добавил проверку на != '\0' и добавил '\0' в допустимые символы:
#define LETNUMSPACE(a) (((a >= 'a' && a <= 'Z') || (a >= '0' && a <= '9') || a == ' ' || a == '\0') ? 1 : 0)
while (!LETNUMSPACE(s[\i]) && s[\i] != '\0')
while (!LETNUMSPACE(t[j]) && t[j] != '\0')
Сегфолта больше нет, логики в сортировке вывода не вижу. Входные данные:
directory
dirfctory
dirgctory
dir/ctory
dir/story
direstory
dirfstory
dir/file
dir/gile
dir/story
directory
direstory
dirgctory
dirfstory
dirfctory
dir/file
dir/ctory
dir/gile
Исходная версия
Norong,
:
Ага, уловил. \n там принципиально быть не может (обрубается функцией readlines). Добавил проверку на != '\0' и добавил '\0' в допустимые символы:
#define LETNUMSPACE(a) (((a >= 'a' && a <= 'Z') || (a >= '0' && a <= '9') || a == ' ' || a == '\0') ? 1 : 0)
while (!LETNUMSPACE(s) && s != '\0')
while (!LETNUMSPACE(t[j]) && t[j] != '\0')
Сегфолта больше нет, логики в сортировке вывода не вижу. Входные данные:
directory
dirfctory
dirgctory
dir/ctory
dir/story
direstory
dirfstory
dir/file
dir/gile
dir/story
directory
direstory
dirgctory
dirfstory
dirfctory
dir/file
dir/ctory
dir/gile