File git-27-c0ecf2e203db2b03e684132669563f7ca71edac4.patch of Package aaa_base.4074

commit c0ecf2e203db2b03e684132669563f7ca71edac4
Author: Werner Fink <werner@suse.de>
Date:   Wed Mar 8 10:07:53 2017 +0100

    Make lang.csh work again (bsc#1025673)
    
    that is let the parser for /etc/sysconfig/language like it
    is done for the bash in lang.sh.  This not only fix the
    bug bsc#1025673 but also increases maintainability.
    
    Signed-off-by: Werner Fink <werner@suse.de>

diff --git a/files/etc/profile.d/lang.csh b/files/etc/profile.d/lang.csh
index 0ff8ce3..fac68cb 100644
--- a/files/etc/profile.d/lang.csh
+++ b/files/etc/profile.d/lang.csh
@@ -36,18 +36,25 @@ endif
 # Get the system and after that the users configuration
 #
 if ( -s /etc/sysconfig/language ) then
-    # Allow GDM to override system settings
-    if ( ${?GDM_LANG} ) then
-	if ( "$uid" == 0 ) then
-	    eval `sed -rn -e 's/^(ROOT_USES_LANG)=/set \1=/p' < /etc/sysconfig/language`
-	else
-	    set ROOT_USES_LANG=yes
-	endif
-    else
-	eval `sed -rn \
-	    -e 's/^RC_((LANG|LC_[A-Z_]+))=/set \1=/p' -e 's/^(ROOT_USES_LANG)=/set \1=/p' \
-	    < /etc/sysconfig/language`
-    endif
+    foreach line ("`sed -rn '/^[^#]/p' < /etc/sysconfig/language`")
+	switch ("$line")
+	case RC_*:
+	    # Allow GDM to override system settings
+	    if ( ${?GDM_LANG} ) continue
+	    eval set ${line:s/RC_//}
+	    breaksw
+	case ROOT_USES_LANG*:
+	    if ( "$uid" == 0 ) then
+		eval set $line
+	    else
+		set ROOT_USES_LANG=yes
+	    endif
+	    breaksw
+	default:
+	    breaksw
+	endsw
+    end
+    unset line
 endif
 if ( -s $HOME/.i18n ) then
     eval `sed -rn -e 's/^((LANG|LC_[A-Z_]+))=/set \1=/p' < $HOME/.i18n`
openSUSE Build Service is sponsored by