2 Copyright © 2012-2013, The AROS Development Team. All rights reserved.
6 #include <aros/symbolsets.h>
8 #include <proto/exec.h>
9 #include <libraries/stdc.h>
11 const unsigned short int * const *__ctype_b_ptr
= NULL
;
12 const unsigned char * const *__ctype_toupper_ptr
= NULL
;
13 const unsigned char * const *__ctype_tolower_ptr
= NULL
;
15 static struct StdCBase
*_StdCBase
;
16 static int opened
= 0;
18 static int __ctype_init(struct ExecBase
*SysBase
)
20 _StdCBase
= __aros_getbase_StdCBase();
21 /* Be sure ctype functions may be called from init code.
22 * If library is using relbase version of stdc.library it will
23 * only open stdc.library during OpenLib and _StdCBase may
24 * be NULL at this point.
25 * Try to open stdc.library manually here
29 _StdCBase
= (struct StdCBase
*)OpenLibrary("stdc.library", 0);
35 __ctype_b_ptr
= &_StdCBase
->__ctype_b
;
36 __ctype_toupper_ptr
= &_StdCBase
->__ctype_toupper
;
37 __ctype_tolower_ptr
= &_StdCBase
->__ctype_tolower
;
42 static void __ctype_exit(void)
44 if (opened
&& _StdCBase
)
45 CloseLibrary((struct Library
*)_StdCBase
);
48 ADD2INIT(__ctype_init
, 20);
49 ADD2EXIT(__ctype_exit
, 20);