RCS file: /usr/src/CVS/mailfs/mailfs,v Working file: mailfs head: 1.18 branch: locks: strict access list: symbolic names: mailfs-0-4: 1.1.1.1 start: 1.1.1.1 gosha: 1.1.1 keyword substitution: kv total revisions: 19; selected revisions: 19 description: ---------------------------- revision 1.18 date: 2002/11/16 22:17:20; author: gosha; state: Exp; lines: +3 -3 Несколько некорректный регексп при разборе PATTERN в copyout... ---------------------------- revision 1.17 date: 2002/11/12 22:17:38; author: gosha; state: Exp; lines: +7 -3 Соломки подстелил немного против '../' при группировке. ---------------------------- revision 1.16 date: 2002/11/12 21:06:19; author: gosha; state: Exp; lines: +96 -126 Количество группировок не ограничено MAILFS_GROUP_BY = 'from,subject,...' Группировать можно по любому полю заголовка письма по умолчанию 1 группировка по полю from Два дополнительных признака группировки content-type-type content-type-charset Поправил несколько регекспов. ( убрал /i, сделал группы символов. ) ---------------------------- revision 1.15 date: 2002/11/12 12:50:24; author: gosha; state: Exp; lines: +98 -44 Переменная MAILFS_GROUP_BY2 теперь необязательна, т.е. группировку можно делать только по одному признаку. ---------------------------- revision 1.14 date: 2002/11/10 15:20:20; author: gosha; state: Exp; lines: +46 -33 Проблеммы при отображении списка с некорректной датой ( например 0102 год - mc - глючит ) Поправил кусок кода с группировкой: при каком либо значении равном например 0 параметр считался неопределенным и ему присваивалось значение 'unknown'. Не до конца поправил ошибки заявленные в 1.11 "При проверке в имени файла символов текущей локали A-Za-z использовались дважды..." Поправил немного регекспы. - в parse_date При использовании переменных в регекспах они не были заэкранированы... Предыдущие изменения на счет 'Все Алиасы в UPCASE' отменил теперь наоборот все в LCASE... - так надо... ---------------------------- revision 1.13 date: 2002/11/09 17:15:40; author: gosha; state: Exp; lines: +16 -16 В файле описания алиасов локалей все ключи в хеше должны быть в uper case регистре. Все имена файлов с алиасов также должны быть в верхнем регистре. ---------------------------- revision 1.12 date: 2002/03/27 18:26:48; author: gosha; state: Exp; lines: +27 -13 Потроха переписал ---------------------------- revision 1.11 date: 2002/02/24 20:11:00; author: gosha; state: Exp; lines: +2 -2 При проверке в имени файла символов текущей локали A-Za-z использовались дважды... ---------------------------- revision 1.10 date: 2002/01/02 00:14:13; author: gosha; state: Exp; lines: +40 -14 Ошибка в инициализации HOME_DIR Добавил возможность перекодировки атачей. ---------------------------- revision 1.9 date: 2001/12/27 17:39:47; author: gosha; state: Exp; lines: +88 -38 Переменная MAX_FILE_NAME_LENGTH отвечает за длинну генерируемых имен файлов/директорий. Один минус: имя файла обрезается с конца и по этому можно отхряпать расширение... При группировке сообщений по дате дата имеет формат YEAR_MON_DAY Разбор quoted заголовка сделал регеспом Код возврата был 'нехороший' Если нет модулей Base64 && QP то пользуется код на перле... При декодировании quoted заголовков некорректно отрабатывалась примерно такая строчка: Subject: =?koi8-r?Q?=F7=CF=D0=D2=CF=D3=20=D0=CF?= iptables т.е. пропадала последняя часть (iptables)... ---------------------------- revision 1.8 date: 2001/12/19 22:28:01; author: gosha; state: Exp; lines: +107 -66 Больше не пользуется Cyrillic::* Прикрутил Unicode::Map8, ну тоесть работать будет и без нее но заголовки не будет перекодировать... К безымянным атачам приписывается расширение из content-type, если есть... Опять появился ATTACH-DESCRIPTION Строка допустимых символов in_words формируется авторматически для текущей локали. Локаль берется из LC_CTYPE Альясы для кодировок могут читаться из файла лежащего в MAILFS_HOME/CP/xxxx где xxx - имя текущей локали. Внутри этого файла ссылка на хеш вида: $CHARS_ALIAS = { 'ru_RU.KOI8-R' => 'koi8-r', 'cp1251' => 'cp1251', 'windows-1251' => 'cp1251', 'windows1251' => 'cp1251', 'windows' => 'cp1251', 'win-1251' => 'cp1251', 'win1251' => 'cp1251', 'win' => 'cp1251', ... } значения желательно привести к формату используемому Unicode::Map8 ---------------------------- revision 1.7 date: 2001/12/11 15:20:34; author: gosha; state: Exp; lines: +353 -243 Порядок сортировки может определятся переменными окружения MAILFS_GROUP_BY MAILFS_GROUP_BY2 могут приниать значения : subj from to date Если файл не пожат то позиция сообщения устанавливается через seek что в разы быстрее. Для ускорения сделал две разные процедуры для анализа сообщения: - для list - для copyout Больше нет такого файла как ATTACH-DESCRIPTION Использую модули: locale; POSIX qw(locale_h); MIME::Base64; MIME::QuotedPrint; Cyrillic::CPconvert; Cyrillic::CPdetect; Переписал в общемто почти все. ---------------------------- revision 1.6 date: 2001/02/16 12:54:02; author: gosha; state: Exp; lines: +9 -4 Исправил баг при обработке пробелов в начале и в конце заголовков ---------------------------- revision 1.5 date: 2001/02/14 16:41:08; author: gosha; state: Exp; lines: +5 -5 ПОфиксал баги с датой в корневой директории ---------------------------- revision 1.4 date: 2001/02/14 16:24:01; author: gosha; state: Exp; lines: +9 -1 Каталоги в корне (т.е. темы) теперь имеют дату первую встретившеюся для данной темы. ---------------------------- revision 1.3 date: 2001/02/14 16:15:32; author: gosha; state: Exp; lines: +76 -18 Вставил процедуру decode_base64 Добавил перекодировку заголовков из QuotePrintable В корне находятся темы сообщений, те все рассортировано по заголовкам (Re: etc тоже учтено) ---------------------------- revision 1.2 date: 2000/10/16 16:47:21; author: gosha; state: Exp; lines: +1 -1 Заменил exit 1; ---------------------------- revision 1.1 date: 2000/10/16 16:30:16; author: gosha; state: Exp; branches: 1.1.1; Initial revision ---------------------------- revision 1.1.1.1 date: 2000/10/16 16:30:16; author: gosha; state: Exp; lines: +0 -0 Начинаем писать mailfs под mc =============================================================================