Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Jan 2003 12:00:57 +0000
From:      Olafur Osvaldsson <oli@isnic.is>
To:        freebsd-hackers@freebsd.org
Cc:        freebsd-sparc@freebsd.org
Subject:   Locale errors on 5.0-CURRENT (sparc)
Message-ID:  <20030103120057.GI74128@isnic.is>

next in thread | raw e-mail | index | archive | help
Hi,
I'm having some problems with seting the locale on 5.0 wich I have set
up on sparc hardware...I'm pretty sure this is not sparc related but if
so please correct me.

On all my intel machines (4.*) I set the lang and locale by adding the
following to the default section in /etc/login.conf:

        :charset=ISO-8859-1:\
        :lang=is_IS.ISO_8859-1:\

and adding "LC_ALL=is_IS.ISO8859-1" to the setenv line.

This seems to have no effect on the 5.0 system as I get locale errors when
running any locale dependant programs...

When running man I get:

ctype locale: Invalid argument

When running perl I get:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LC_ALL = "is_IS.ISO8859-1",
        LANG = "is_IS.ISO8859-1"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").


So I made a simple program to see if I could set the locale to what I
wanted.

=================================================
#include <stdio.h>
#include <locale.h>

main(argc, argv)
    int             argc;
    char           *argv[];
{
  printf("setlocale(LC_ALL, \"%s\") returns: %s\n",argv[1],setlocale(LC_ALL, argv[1]));
  printf("setlocale(LC_TIME, \"%s\") returns: %s\n",argv[1],setlocale(LC_TIME, argv[1]));
  printf("Testing: [áíóðþæö]\n");
  return 0;
}
=================================================

When run on the 5.0 system:

# ./locale-test is_IS.ISO8859-1
setlocale(LC_ALL, "is_IS.ISO8859-1") returns: (null)
setlocale(LC_TIME, "is_IS.ISO8859-1") returns: is_IS.ISO8859-1
Testing: [áíóðþæö]


But when run on a 4.7-STABLE system it goes like this:

# ./locale-test is_IS.ISO8859-1
setlocale(LC_ALL, "is_IS.ISO8859-1") returns: is_IS.ISO8859-1
setlocale(LC_TIME, "is_IS.ISO8859-1") returns: is_IS.ISO8859-1
Testing: [áíóðþæö]


The is_IS.ISO8859-1 locale is the same on both systems and I get the same
error when trying to set en_US.ISO8859-1 but if I try C it works fine on the
5.0 system:

# ./locale-test C              
setlocale(LC_ALL, "C") returns: C
setlocale(LC_TIME, "C") returns: C
Testing: [áíóðþæö]


I think there is some problem there but I don't have a free intel system to
test if 5.0 behaves the same there as on the sparc system.

I hope this all makes sense to someone else than just me.

/Oli

-- 
Olafur Osvaldsson
Systems Administrator
Internet a Islandi hf.
Tel:   +354 525-5291
Email: oli@isnic.is

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-sparc" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030103120057.GI74128>