If LANG/LC_CTYPE/LC_ALL is set and the localized man page contains a page

also in the base set, the man utility when invoked with -a would display
pages for each locale in the same tree:

$ LANG=en_GB.ISO8859-15 man -wa man
/usr/share/man/en.ISO8859-15/man1/man.1.gz
/usr/share/man/man1/man.1.gz
/usr/share/man/en.ISO8859-15/man7/man.7.gz
/usr/share/man/man7/man.7.gz

Use continue to break out of the loop for the current locale. This results
in behavior more closely matching the old GNU man implementation:

$ LANG=en_GB.ISO8859-15 man -wa man
/usr/share/man/en.ISO8859-15/man1/man.1.gz
/usr/share/man/en.ISO8859-15/man7/man.7.gz

This will still search for a copy of the file in other manual path
locations. If there was a /usr/local/man/man1/man.1.gz file, it would still
be displayed. This is also consistent with the GNU man implementation.

Submitted by:	arundel
Approved by:	wes (mentor implicit)
This commit is contained in:
gordon 2010-10-06 07:22:56 +00:00
parent 6af162923c
commit 77748dfb9c

View File

@ -368,7 +368,9 @@ man_find_and_display() {
if find_file $p $sect $MACHINE "$1"; then
found_page=yes
man_display_page
if [ -z "$aflag" ]; then
if [ -n "$aflag" ]; then
continue 2
else
return
fi
fi
@ -378,7 +380,9 @@ man_find_and_display() {
if find_file $p $sect $MACHINE_ARCH "$1"; then
found_page=yes
man_display_page
if [ -z "$aflag" ]; then
if [ -n "$aflag" ]; then
continue 2
else
return
fi
fi
@ -387,7 +391,9 @@ man_find_and_display() {
if find_file $p $sect '' "$1"; then
found_page=yes
man_display_page
if [ -z "$aflag" ]; then
if [ -n "$aflag" ]; then
continue 2
else
return
fi
fi