svn commit: r340128 - head/usr.bin/man

Yuri Pankov yuripv at FreeBSD.org
Sun Nov 4 16:58:56 UTC 2018


Author: yuripv
Date: Sun Nov  4 16:58:55 2018
New Revision: 340128
URL: https://svnweb.freebsd.org/changeset/base/340128

Log:
  Teach man(1) about C.UTF-8.
  
  While here, use LANG as the proper source to select man pages language/encoding,
  falling back to LC_CTYPE.
  
  Reviewed by:	bapt
  Approved by:	kib (mentor, implicit)
  Differential Revision:	https://reviews.freebsd.org/D17835

Modified:
  head/usr.bin/man/man.sh

Modified: head/usr.bin/man/man.sh
==============================================================================
--- head/usr.bin/man/man.sh	Sun Nov  4 16:08:59 2018	(r340127)
+++ head/usr.bin/man/man.sh	Sun Nov  4 16:58:55 2018	(r340128)
@@ -662,6 +662,7 @@ man_setup_width() {
 # Setup necessary locale variables.
 man_setup_locale() {
 	local lang_cc
+	local locstr
 
 	locpaths='.'
 	man_charset='US-ASCII'
@@ -670,18 +671,25 @@ man_setup_locale() {
 	if [ -n "$oflag" ]; then
 		decho 'Using non-localized manpages'
 	else
-		# Use the locale tool to give us the proper LC_CTYPE
+		# Use the locale tool to give us proper locale information
 		eval $( $LOCALE )
 
-		case "$LC_CTYPE" in
+		if [ -n "$LANG" ]; then
+			locstr=$LANG
+		else
+			locstr=$LC_CTYPE
+		fi
+
+		case "$locstr" in
 		C)		;;
+		C.UTF-8)	;;
 		POSIX)		;;
 		[a-z][a-z]_[A-Z][A-Z]\.*)
-				lang_cc="${LC_CTYPE%.*}"
-				man_lang="${LC_CTYPE%_*}"
+				lang_cc="${locstr%.*}"
+				man_lang="${locstr%_*}"
 				man_country="${lang_cc#*_}"
-				man_charset="${LC_CTYPE#*.}"
-				locpaths="$LC_CTYPE"
+				man_charset="${locstr#*.}"
+				locpaths="$locstr"
 				locpaths="$locpaths:$man_lang.$man_charset"
 				if [ "$man_lang" != "en" ]; then
 					locpaths="$locpaths:en.$man_charset"


More information about the svn-src-all mailing list