mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-31 08:41:03 +00:00
More encoding tidyups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@9565 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
5b98e2b7aa
commit
9c4aa92591
4 changed files with 81 additions and 65 deletions
|
@ -12,6 +12,8 @@
|
||||||
default cString encoding ... the default cString encoding must
|
default cString encoding ... the default cString encoding must
|
||||||
consist of 7 or 8 bit characters, and must contain ASCII as a
|
consist of 7 or 8 bit characters, and must contain ASCII as a
|
||||||
subset. We really should think of a generalised test for that.
|
subset. We really should think of a generalised test for that.
|
||||||
|
Use GetDefEncoding() throughout rather than defaultCStringEncoding.
|
||||||
|
* Source/GSString.m: Use GetDefEncoding() to get c string encoding.
|
||||||
|
|
||||||
2001-04-11 Nicola Pero <nicola@brainstorm.co.uk>
|
2001-04-11 Nicola Pero <nicola@brainstorm.co.uk>
|
||||||
|
|
||||||
|
|
|
@ -185,6 +185,15 @@
|
||||||
<code>NSISOLatin1StringEncoding</code> is assumed.
|
<code>NSISOLatin1StringEncoding</code> is assumed.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
|
The default C string encoding must be a characterset containing
|
||||||
|
7 or 8 bit characters, and where the characters are a superset
|
||||||
|
of the 7-bit ASCII characterset. In particular, this means
|
||||||
|
that NSUTF8StringEncoding and NSUnicodeStringEncoding are not
|
||||||
|
permissable.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<h3><a name ="method-2">localizedNameOfStringEncoding:</a></h3>
|
<h3><a name ="method-2">localizedNameOfStringEncoding:</a></h3>
|
||||||
|
|
|
@ -226,6 +226,8 @@ setup()
|
||||||
|
|
||||||
if (beenHere == NO)
|
if (beenHere == NO)
|
||||||
{
|
{
|
||||||
|
extern NSStringEncoding GetDefEncoding();
|
||||||
|
|
||||||
beenHere = YES;
|
beenHere = YES;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -262,7 +264,7 @@ setup()
|
||||||
/*
|
/*
|
||||||
* Cache the default string encoding.
|
* Cache the default string encoding.
|
||||||
*/
|
*/
|
||||||
defEnc = [NSString defaultCStringEncoding];
|
defEnc = GetDefEncoding();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
131
Source/Unicode.m
131
Source/Unicode.m
|
@ -177,80 +177,83 @@ NSStringEncoding *GetAvailableEncodings()
|
||||||
NSStringEncoding
|
NSStringEncoding
|
||||||
GetDefEncoding()
|
GetDefEncoding()
|
||||||
{
|
{
|
||||||
char *encoding;
|
if (defEnc == GSUndefinedEncoding)
|
||||||
unsigned int count;
|
|
||||||
NSStringEncoding ret;
|
|
||||||
NSStringEncoding tmp;
|
|
||||||
NSStringEncoding *availableEncodings;
|
|
||||||
|
|
||||||
availableEncodings = GetAvailableEncodings();
|
|
||||||
|
|
||||||
encoding = getenv("GNUSTEP_STRING_ENCODING");
|
|
||||||
if (encoding != 0)
|
|
||||||
{
|
{
|
||||||
count = 0;
|
char *encoding;
|
||||||
while (str_encoding_table[count].enc
|
unsigned int count;
|
||||||
&& strcmp(str_encoding_table[count].ename,encoding))
|
NSStringEncoding tmp;
|
||||||
|
NSStringEncoding *availableEncodings;
|
||||||
|
|
||||||
|
availableEncodings = GetAvailableEncodings();
|
||||||
|
|
||||||
|
encoding = getenv("GNUSTEP_STRING_ENCODING");
|
||||||
|
if (encoding != 0)
|
||||||
{
|
{
|
||||||
count++;
|
count = 0;
|
||||||
}
|
while (str_encoding_table[count].enc
|
||||||
if (str_encoding_table[count].enc)
|
&& strcmp(str_encoding_table[count].ename,encoding))
|
||||||
{
|
|
||||||
ret = str_encoding_table[count].enc;
|
|
||||||
if ((ret == NSUnicodeStringEncoding)
|
|
||||||
|| (ret == NSUTF8StringEncoding)
|
|
||||||
|| (ret == NSSymbolStringEncoding))
|
|
||||||
{
|
{
|
||||||
fprintf(stderr, "WARNING: %s - encoding not supported as "
|
count++;
|
||||||
"default c string encoding.\n", encoding);
|
|
||||||
fprintf(stderr, "NSISOLatin1StringEncoding set as default.\n");
|
|
||||||
ret = NSISOLatin1StringEncoding;
|
|
||||||
}
|
}
|
||||||
else /*encoding should be supported but is it implemented?*/
|
if (str_encoding_table[count].enc)
|
||||||
{
|
{
|
||||||
count = 0;
|
defEnc = str_encoding_table[count].enc;
|
||||||
tmp = 0;
|
if ((defEnc == NSUnicodeStringEncoding)
|
||||||
while (availableEncodings[count] != 0)
|
|| (defEnc == NSUTF8StringEncoding)
|
||||||
|
|| (defEnc == NSSymbolStringEncoding))
|
||||||
{
|
{
|
||||||
if (ret != availableEncodings[count])
|
fprintf(stderr, "WARNING: %s - encoding not supported as "
|
||||||
{
|
"default c string encoding.\n", encoding);
|
||||||
tmp = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tmp = ret;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
if (tmp == 0 && ret != NSISOLatin1StringEncoding)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "WARNING: %s - encoding not yet "
|
|
||||||
"implemented.\n", encoding);
|
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"NSISOLatin1StringEncoding set as default.\n");
|
"NSISOLatin1StringEncoding set as default.\n");
|
||||||
ret = NSISOLatin1StringEncoding;
|
defEnc = NSISOLatin1StringEncoding;
|
||||||
|
}
|
||||||
|
else /*encoding should be supported but is it implemented?*/
|
||||||
|
{
|
||||||
|
count = 0;
|
||||||
|
tmp = 0;
|
||||||
|
while (availableEncodings[count] != 0)
|
||||||
|
{
|
||||||
|
if (defEnc != availableEncodings[count])
|
||||||
|
{
|
||||||
|
tmp = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tmp = defEnc;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
if (tmp == 0 && defEnc != NSISOLatin1StringEncoding)
|
||||||
|
{
|
||||||
|
fprintf(stderr,
|
||||||
|
"WARNING: %s - encoding not yet implemented.\n",
|
||||||
|
encoding);
|
||||||
|
fprintf(stderr,
|
||||||
|
"NSISOLatin1StringEncoding set as default.\n");
|
||||||
|
defEnc = NSISOLatin1StringEncoding;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else /* encoding not found */
|
||||||
|
{
|
||||||
|
fprintf(stderr,
|
||||||
|
"WARNING: %s - encoding not supported.\n", encoding);
|
||||||
|
fprintf(stderr, "NSISOLatin1StringEncoding set as default.\n");
|
||||||
|
defEnc = NSISOLatin1StringEncoding;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else /* encoding not found */
|
else /* environment var not found */
|
||||||
{
|
{
|
||||||
fprintf(stderr, "WARNING: %s - encoding not supported.\n", encoding);
|
/* shouldn't be required. It really should be in UserDefaults - asf */
|
||||||
fprintf(stderr, "NSISOLatin1StringEncoding set as default.\n");
|
//fprintf(stderr, "WARNING: GNUSTEP_STRING_ENCODING environment");
|
||||||
ret = NSISOLatin1StringEncoding;
|
//fprintf(stderr, " variable not found.\n");
|
||||||
|
//fprintf(stderr, "NSISOLatin1StringEncoding set as default.\n");
|
||||||
|
defEnc = NSISOLatin1StringEncoding;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else /* environment var not found */
|
return defEnc;
|
||||||
{
|
|
||||||
/* shouldn't be required. It really should be in UserDefaults - asf */
|
|
||||||
//fprintf(stderr,"WARNING: GNUSTEP_STRING_ENCODING environment found\n");
|
|
||||||
//fprintf(stderr, "NSISOLatin1StringEncoding set as default.\n");
|
|
||||||
ret = NSISOLatin1StringEncoding;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Cache the encoding
|
|
||||||
defEnc = ret;
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NSString*
|
NSString*
|
||||||
|
@ -621,7 +624,7 @@ chartouni(char c)
|
||||||
{
|
{
|
||||||
if (defEnc == GSUndefinedEncoding)
|
if (defEnc == GSUndefinedEncoding)
|
||||||
{
|
{
|
||||||
defEnc = [NSString defaultCStringEncoding];
|
defEnc = GetDefEncoding();
|
||||||
}
|
}
|
||||||
return encode_chartouni(c, defEnc);
|
return encode_chartouni(c, defEnc);
|
||||||
}
|
}
|
||||||
|
@ -631,7 +634,7 @@ unitochar(unichar u)
|
||||||
{
|
{
|
||||||
if (defEnc == GSUndefinedEncoding)
|
if (defEnc == GSUndefinedEncoding)
|
||||||
{
|
{
|
||||||
defEnc = [NSString defaultCStringEncoding];
|
defEnc = GetDefEncoding();
|
||||||
}
|
}
|
||||||
return encode_unitochar(u, defEnc);
|
return encode_unitochar(u, defEnc);
|
||||||
}
|
}
|
||||||
|
@ -641,7 +644,7 @@ strtoustr(unichar *u1, const char *s1, int size)
|
||||||
{
|
{
|
||||||
if (defEnc == GSUndefinedEncoding)
|
if (defEnc == GSUndefinedEncoding)
|
||||||
{
|
{
|
||||||
defEnc = [NSString defaultCStringEncoding];
|
defEnc = GetDefEncoding();
|
||||||
}
|
}
|
||||||
|
|
||||||
return encode_strtoustr(u1, s1, size, defEnc);
|
return encode_strtoustr(u1, s1, size, defEnc);
|
||||||
|
@ -652,7 +655,7 @@ ustrtostr(char *s2, unichar *u1, int size)
|
||||||
{
|
{
|
||||||
if (defEnc == GSUndefinedEncoding)
|
if (defEnc == GSUndefinedEncoding)
|
||||||
{
|
{
|
||||||
defEnc = [NSString defaultCStringEncoding];
|
defEnc = GetDefEncoding();
|
||||||
}
|
}
|
||||||
|
|
||||||
return encode_ustrtostr(s2, u1, size, defEnc);
|
return encode_ustrtostr(s2, u1, size, defEnc);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue