Tidyups and bugfixes based on compiler warnings.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@4881 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-MacDonald 1999-09-13 04:11:39 +00:00
parent 6beb80c336
commit ca36a2f5ed
5 changed files with 224 additions and 181 deletions

View file

@ -182,6 +182,7 @@
@encode(unsigned), &count);
*l = count;
array = objc_malloc(count);
where = array;
while (count-- > 0)
(*imp)(self, @selector(decodeValueOfObjCType:at:), type, where++);

View file

@ -634,10 +634,10 @@ GSTimeNow()
break;
default:
dtoIndex++;
if (debug)
NSLog(@"odd char (unicode %d) in NSDateTimeOrdering.\n",
[dto characterAtIndex: index]);
[dto characterAtIndex: dtoIndex]);
dtoIndex++;
break;
}
}
@ -763,7 +763,7 @@ GSTimeNow()
default:
if (debug)
NSLog(@"unexpected char (unicode%d) in NSDateTimeOrdering.\n",
[dto characterAtIndex: index]);
[dto characterAtIndex: dtoIndex]);
break;
}
}

View file

@ -1012,21 +1012,18 @@ static NSNotificationCenter *default_center = nil;
* Post the notification to all the observers that specified neither
* NAME nor OBJECT.
*/
if (o != ENDOBS)
for (o = WILDCARD; o != ENDOBS; o = o->next)
{
for (o = WILDCARD; o != ENDOBS; o = o->next)
{
GSIArrayAddItem(a, (GSIArrayItem)o);
}
count = GSIArrayCount(a);
while (count-- > arrayBase)
{
o = GSIArrayItemAtIndex(a, count).ext;
if (o->next != 0)
(*o->method)(o->observer, o->selector, notification);
}
GSIArrayRemoveItemsFromIndex(a, arrayBase);
GSIArrayAddItem(a, (GSIArrayItem)o);
}
count = GSIArrayCount(a);
while (count-- > arrayBase)
{
o = GSIArrayItemAtIndex(a, count).ext;
if (o->next != 0)
(*o->method)(o->observer, o->selector, notification);
}
GSIArrayRemoveItemsFromIndex(a, arrayBase);
/*
* Post the notification to all the observers that specified OBJECT,

View file

@ -144,7 +144,8 @@ pathSeps()
myPathSeps = [NSCharacterSet characterSetWithCharactersInString: @"/"];
#endif
RETAIN(myPathSeps);
sepMember = [myPathSeps methodForSelector: @selector(characterIsMember:)];
sepMember = (BOOL (*)(NSCharacterSet*, SEL, unichar))
[myPathSeps methodForSelector: @selector(characterIsMember:)];
}
return myPathSeps;
}

View file

@ -1,7 +1,7 @@
/* Support functions for Unicode implementation
Copyright (C) 1997 Free Software Foundation, Inc.
Written by: Stevo Crvenkovski <stevo@btinternet.com>
Written by: Stevo Crvenkovski < stevo@btinternet.com >
Date: March 1997
This file is part of the GNUstep Base Library.
@ -35,138 +35,174 @@ struct _ucc_ {unichar from; char to;};
#define FALSE 0
#define TRUE 1
unichar encode_chartouni(char c, NSStringEncoding enc)
typedef unsigned char unc;
unichar
encode_chartouni(char c, NSStringEncoding enc)
{
/* All that I could find in Next documentation
on NSNonLossyASCIIStringEncoding was <<forthcoming>>. */
if((enc==NSNonLossyASCIIStringEncoding)
|| (enc==NSASCIIStringEncoding)
|| (enc==NSISOLatin1StringEncoding))
return (unichar)((unsigned char)c);
if((enc==NSNEXTSTEPStringEncoding))
if((unsigned char)c<Next_conv_base)
return (unichar)((unsigned char)c);
/* All that I could find in Next documentation
on NSNonLossyASCIIStringEncoding was << forthcoming >>. */
if ((enc == NSNonLossyASCIIStringEncoding)
|| (enc == NSASCIIStringEncoding)
|| (enc == NSISOLatin1StringEncoding))
{
return (unichar)((unc)c);
}
if ((enc == NSNEXTSTEPStringEncoding))
{
if ((unc)c < Next_conv_base)
return (unichar)((unc)c);
else
return(Next_char_to_uni_table[(unsigned char)c - Next_conv_base]);
if((enc==NSCyrillicStringEncoding))
if((unsigned char)c<Cyrillic_conv_base)
return (unichar)((unsigned char)c);
return(Next_char_to_uni_table[(unc)c - Next_conv_base]);
}
if ((enc == NSCyrillicStringEncoding))
{
if ((unc)c < Cyrillic_conv_base)
return (unichar)((unc)c);
else
return(Cyrillic_char_to_uni_table[(unsigned char)c - Cyrillic_conv_base]);
return(Cyrillic_char_to_uni_table[(unc)c - Cyrillic_conv_base]);
}
#if 0
if((enc==NSSymbolStringEncoding))
if((unsigned char)c<Symbol_conv_base)
return (unichar)((unsigned char)c);
if ((enc == NSSymbolStringEncoding))
{
if ((unc)c < Symbol_conv_base)
return (unichar)((unc)c);
else
return(Symbol_char_to_uni_table[(unsigned char)c - Symbol_conv_base]);
return(Symbol_char_to_uni_table[(unc)c - Symbol_conv_base]);
}
#endif
return 0;
}
char encode_unitochar(unichar u, NSStringEncoding enc)
char
encode_unitochar(unichar u, NSStringEncoding enc)
{
int res;
int i=0;
int i =0;
if((enc==NSNonLossyASCIIStringEncoding)
|| (enc==NSASCIIStringEncoding))
if(u<128)
return (char)u;
else
return 0;
if ((enc == NSNonLossyASCIIStringEncoding)
|| (enc == NSASCIIStringEncoding))
{
if (u <128)
return (char)u;
else
return 0;
}
if ((enc == NSISOLatin1StringEncoding))
{
if (u <256)
return (char)u;
else
return 0;
}
if((enc==NSISOLatin1StringEncoding))
if(u<256)
return (char)u;
else
return 0;
if ((enc == NSNEXTSTEPStringEncoding))
{
if (u <(unichar)Next_conv_base)
return (char)u;
else
{
while (((res = u-Next_uni_to_char_table[i++].from) > 0)
&& (i < Next_uni_to_char_table_size));
return res?0:Next_uni_to_char_table[--i].to;
}
}
if((enc== NSNEXTSTEPStringEncoding))
if(u<(unichar)Next_conv_base)
return (char)u;
else
{
while(((res=u-Next_uni_to_char_table[i++].from)>0) && (i<Next_uni_to_char_table_size));
return res?0:Next_uni_to_char_table[--i].to;
}
if((enc==NSCyrillicStringEncoding))
if(u<(unichar)Cyrillic_conv_base)
return (char)u;
else
{
while(((res=u-Cyrillic_uni_to_char_table[i++].from)>0) && (i<Cyrillic_uni_to_char_table_size));
return res?0:Cyrillic_uni_to_char_table[--i].to;
}
if ((enc == NSCyrillicStringEncoding))
{
if (u <(unichar)Cyrillic_conv_base)
return (char)u;
else
{
while (((res = u-Cyrillic_uni_to_char_table[i++].from) > 0)
&& (i < Cyrillic_uni_to_char_table_size));
return res ? 0 : Cyrillic_uni_to_char_table[--i].to;
}
}
#if 0
if((enc==NSSymbolStringEncoding))
if(u<(unichar)Symbol_conv_base)
return (char)u;
else
{
while(((res=u-Symbol_uni_to_char_table[i++].from)>0) && (i<Symbol_uni_to_char_table_size));
return res?'*':Symbol_uni_to_char_table[--i].to;
}
if ((enc == NSSymbolStringEncoding))
{
if (u <(unichar)Symbol_conv_base)
return (char)u;
else
{
while (((res = u-Symbol_uni_to_char_table[i++].from) > 0)
&& (i < Symbol_uni_to_char_table_size));
return res ? '*' : Symbol_uni_to_char_table[--i].to;
}
}
#endif
return 0;
return 0;
}
unichar chartouni(char c)
unichar
chartouni(char c)
{
static NSStringEncoding enc = GSUndefinedEncoding;
if (enc == 0) enc = [NSString defaultCStringEncoding];
if (enc == 0)
enc = [NSString defaultCStringEncoding];
return encode_chartouni(c, enc);
}
char unitochar(unichar u)
char
unitochar(unichar u)
{
unsigned char res;
unc res;
static NSStringEncoding enc = GSUndefinedEncoding;
if (enc == 0) enc = [NSString defaultCStringEncoding];
if((res=encode_unitochar(u, enc)))
if (enc == 0)
enc = [NSString defaultCStringEncoding];
if ((res = encode_unitochar(u, enc)))
return res;
else
return '*';
}
int strtoustr(unichar * u1,const char *s1,int size)
{
int count;
for(count=0;(count<size)&&(s1[count]!=0);count++)
u1[count]=chartouni(s1[count]);
return count;
}
int ustrtostr(char *s2,unichar *u1,int size)
{
int count;
for(count=0;(count<size)&&(u1[count]!=(unichar)0);count++)
s2[count]=unitochar(u1[count]);
return(count);
}
int encode_strtoustr(unichar * u1,const char *s1,int size, NSStringEncoding enc)
{
int count;
for(count=0;(count<size)&&(s1[count]!=0);count++)
u1[count]=encode_chartouni(s1[count],enc);
return count;
}
int
strtoustr(unichar * u1,const char *s1,int size)
{
int count;
int encode_ustrtostr(char *s2,unichar *u1,int size, NSStringEncoding enc)
{
int count;
for(count=0;(count<size)&&(u1[count]!=(unichar)0);count++)
s2[count]=encode_unitochar(u1[count],enc);
return(count);
}
for (count = 0; (count < size) && (s1[count] != 0); count++)
u1[count] = chartouni(s1[count]);
return count;
}
int
ustrtostr(char *s2,unichar *u1,int size)
{
int count;
for (count = 0; (count < size) && (u1[count] != (unichar)0); count++)
s2[count] = unitochar(u1[count]);
return(count);
}
int
encode_strtoustr(unichar * u1,const char *s1,int size, NSStringEncoding enc)
{
int count;
for (count = 0; (count < size) && (s1[count] != 0); count++)
u1[count] = encode_chartouni(s1[count], enc);
return count;
}
int
encode_ustrtostr(char *s2,unichar *u1,int size, NSStringEncoding enc)
{
int count;
for (count = 0; (count < size) && (u1[count] != (unichar)0); count++)
s2[count] = encode_unitochar(u1[count], enc);
return(count);
}
/* Be carefull if you use this. Unicode arrays returned by
-getCharacters methods are not zero terminated */
@ -174,6 +210,7 @@ int
uslen (unichar *u)
{
int len = 0;
while (u[len] != 0)
{
if (u[++len] == 0)
@ -183,23 +220,28 @@ uslen (unichar *u)
return len;
}
unichar uni_tolower(unichar ch)
unichar
uni_tolower(unichar ch)
{
int res;
int count=0;
while(((res=ch - t_tolower[count++][0])>0)&&(count<t_len_tolower));
return res?ch:t_tolower[--count][1];
}
unichar uni_toupper(unichar ch)
{
int res;
int count=0;
while(((res=ch - t_toupper[count++][0])>0)&&(count<t_len_toupper));
return res?ch:t_toupper[--count][1];
}
int count = 0;
unsigned char uni_cop(unichar u)
while (((res = ch - t_tolower[count++][0]) > 0) && (count < t_len_tolower));
return res ? ch : t_tolower[--count][1];
}
unichar
uni_toupper(unichar ch)
{
int res;
int count = 0;
while (((res = ch - t_toupper[count++][0]) > 0) && (count < t_len_toupper));
return res ? ch : t_toupper[--count][1];
}
unsigned char
uni_cop(unichar u)
{
unichar count,first,last,comp;
BOOL notfound;
@ -207,49 +249,51 @@ unsigned char uni_cop(unichar u)
first = 0;
last = uni_cop_table_size;
notfound = TRUE;
count=0;
count =0;
if(u > (unichar)0x0080) // no nonspacing in ascii
{
while(notfound && (first <= last))
if (u > (unichar)0x0080) // no nonspacing in ascii
{
if(!(first==last))
{
count = (first + last) / 2;
comp=uni_cop_table[count].code;
if(comp < u)
first = count+1;
else
if(comp > u)
last = count-1;
else
notfound = FALSE;
}
else /* first==last */
{
if(u == uni_cop_table[first].code)
return uni_cop_table[first].cop;
return 0;
} /* else */
} /* while notfound ...*/
return notfound?0:uni_cop_table[count].cop;
}
while (notfound && (first <= last))
{
if (!(first == last))
{
count = (first + last) / 2;
comp = uni_cop_table[count].code;
if (comp < u)
first = count+1;
else
if (comp > u)
last = count-1;
else
notfound = FALSE;
}
else /* first == last */
{
if (u == uni_cop_table[first].code)
return uni_cop_table[first].cop;
return 0;
} /* else */
} /* while notfound ...*/
return notfound ? 0 : uni_cop_table[count].cop;
}
else /* u is ascii */
return 0;
}
BOOL uni_isnonsp(unichar u)
BOOL
uni_isnonsp(unichar u)
{
#define TRUE 1
#define FALSE 0
// check is uni_cop good for this
if(uni_cop(u))
if (uni_cop(u))
return TRUE;
else
return FALSE;
}
unichar *uni_is_decomp(unichar u)
unichar*
uni_is_decomp(unichar u)
{
unichar count,first,last,comp;
BOOL notfound;
@ -257,33 +301,33 @@ unichar *uni_is_decomp(unichar u)
first = 0;
last = uni_dec_table_size;
notfound = TRUE;
count=0;
count =0;
if(u > (unichar)0x0080) // no composites in ascii
{
while(notfound && (first <= last))
if (u > (unichar)0x0080) // no composites in ascii
{
if(!(first==last))
{
count = (first + last) / 2;
comp=uni_dec_table[count].code;
if(comp < u)
first = count+1;
else
if(comp > u)
last = count-1;
else
notfound = FALSE;
}
else /* first==last */
{
if(u == uni_dec_table[first].code)
return uni_dec_table[first].decomp;
return 0;
} /* else */
} /* while notfound ...*/
return notfound?0:uni_dec_table[count].decomp;
}
while (notfound && (first <= last))
{
if (!(first == last))
{
count = (first + last) / 2;
comp = uni_dec_table[count].code;
if (comp < u)
first = count+1;
else
if (comp > u)
last = count-1;
else
notfound = FALSE;
}
else /* first == last */
{
if (u == uni_dec_table[first].code)
return uni_dec_table[first].decomp;
return 0;
} /* else */
} /* while notfound ...*/
return notfound ? 0 : uni_dec_table[count].decomp;
}
else /* u is ascii */
return 0;
}