[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: emacs-snapshot-bin-common: /etc/alternatives н е важи при emacs(1)
From: |
Kaloian Doganov |
Subject: |
Re: emacs-snapshot-bin-common: /etc/alternatives н е важи при emacs(1) |
Date: |
Fri, 29 Jun 2007 19:12:35 +0300 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.1.50 (gNewSense gnu/linux) |
Yavor Doganov <address@hidden> writes:
при инсталирани на системата emacs21, emacs22 и emacs-snapshot
(или първото в комбинация от някои от следващите), `man emacs'
винаги покава страницата на emacs-snapshot. Това е на gNewSense
GNU/Linux, но го възпроизвеждам и под Debian/sid.
Този проблем се възпроизвежда и на моята система (gNewSense + jungle).
По някаква мистериозна за мен причина си решава, че именно
emacs.1emacs-snapshot.gz е това, което потребителя търси :-{
Някой да има идея защо се получава така и как може да се избегне?
Изглежда това се случва заради особения начин, по който man открива
страниците. При инсталирани пакети emacs21, emacs22 и emacs-snapshot,
в /usr/share/man/man1 имаме:
emacs.1emacs21.gz
emacs.1emacs22.gz
emacs.1emacs-snapshot.gz
emacs.1.gz
Където emacs.1.gz е алтернатива. Сам по себе си man не разбира от
алтернативи, той вижда файлове и затова засега ще разглеждаме
emacs.1.gz на общо основание, наравно с останалите.
От гледна точка на man, имаме общо 4 страници с име „emacs“, които се
намират в следните раздели:
| страница | раздел | файлово име |
|----------+-----------------+----------------------------------------------|
| emacs | 1emacs21 | /usr/share/man/man1/emacs.1emacs21.gz |
| emacs | 1emacs22 | /usr/share/man/man1/emacs.1emacs22.gz |
| emacs | 1emacs-snapshot | /usr/share/man/man1/emacs.1emacs-snapshot.gz |
| emacs | 1 | /usr/share/man/man1/emacs.1.gz |
Де факто и четирите страници отговарят на критерия „emacs“. При
изпълнение на командата „man emacs“ всъщност се откриват всичките
четири страници, но по подразбиране се показва само една от тях —
първата, на която попадне man. (Обаче „man -all emacs“ ще покаже и
четирите.)
Не мога да кажа защо при показване на една страница се избира точно
варианта от раздела „1emacs-snapshot“, а не някой друг. По принцип
редът за търсене в разделите зависи от директивата SECTIONS в
/etc/manpath.config, но по подразбиране в тази директива не е посочен
ред на разделите, които ни интересуват тук. Казано е, че „1“
предхожда „2“ и „2“ предхожда „3“, но не е отбелязано дали „1“
предхожда „1emacs-snapshot“, например.
Струва ми се, че редът за избор в този случай е недефиниран и зависи
от конкретната реализация на man. За съжаление, в момента не
разполагам с изходния код, за да направя справка.
Можем изрично да посочим ред на търсене като укажем променливата
MANSECT:
$ MANSECT=1emacs22:1:1emacs21:1emacs-snapshot man emacs
Горната команда винаги ще показва страницата „emacs“ от раздела
„1emacs22“. Докато:
$ MANSECT=1:1emacs21:1emacs22:1emacs-snapshot man emacs
винаги ще показва страницата „emacs“ от раздел „1“, т.е. от това,
което е посочено в алтернативата.
Разбира се, ръчното установяване на SECTIONS или MANSECT не е читаво
решение на проблема. Разследването би трябвало да продължи като се
погледне в кода на man.
--
Protect your digital freedom and privacy, eliminate DRM, learn more at
http://www.defectivebydesign.org/what_is_drm
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: emacs-snapshot-bin-common: /etc/alternatives н е важи при emacs(1),
Kaloian Doganov <=