On Thu, Apr 14, 2011 at 01:53:05AM +0300, Igor Vlasenko wrote: Да, и еще -- задача резко упрщается, если нам не надо строить таки циферки в результате сравнения, а достаточно определить 1 конкретное соответствие. Тогда алгоритм слияния получается такой: Для каждого из этапов (начиная с "пользовательский конфиг, прямое соответствие", заканчивая "дистрибуитвный конфиг, shell pattern") делаем следующее: - ищем указаны ли хоть какие-то приоритеты для этого формата, если нет -- переходим к следующему - если указаны -- сортировкой выявляем наиболее приоритетный Думаю этого достаточно. Если в моем пользовательском конфиге сказано: text/plain emacs > vim то это значит что я хочу emacs, если он установлен, и vim если нет. И смотреть в дистрибутивный конфиг можно только если вдруг не установлен ни один из них. и тогда нам никакие частично упорядоченные множества не нужны: нам просто нужно получить четкое соответствие между mime-типом и одним единственным установленным в систему приложением. -- С уважением, Денис http://mithraen.ru/ ----------------------------------------------------------------------------