summaryrefslogtreecommitdiff
path: root/trunk/wince/stdlib.c
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-25 15:02:05 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-25 15:02:05 +0000
commit0dc342de848a642ecce8db697b8fecd83a63e117 (patch)
tree2b7ed4724aff1f86073e4740134bda9c4aac1a39 /trunk/wince/stdlib.c
parentef70cf7138ab8034b5b806f466e4b484b24f0f88 (diff)
added tag v1_9_0_4
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_9_0_4@18845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'trunk/wince/stdlib.c')
-rw-r--r--trunk/wince/stdlib.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/trunk/wince/stdlib.c b/trunk/wince/stdlib.c
new file mode 100644
index 0000000000..d371b12f88
--- /dev/null
+++ b/trunk/wince/stdlib.c
@@ -0,0 +1,57 @@
+/***************************************************************
+ stdlib.c
+***************************************************************/
+
+#include <windows.h>
+
+char **environ;
+extern char * rb_w32_getenv(const char *);
+
+/* getenv should replace with rb_w32_getenv. */
+char *getenv(const char *env)
+{
+ return rb_w32_getenv(env);
+}
+
+char *_fullpath(char *absPath, const char *relPath,
+ size_t maxLength)
+{
+ strcpy( absPath, relPath );
+ return absPath;
+}
+
+int mblen(const char *mbstr, size_t count)
+{
+ const char *p = mbstr;
+ size_t i;
+ int n=0;
+
+ for( i=0; i<count; i++ )
+ {
+ if( *p=='\0' ) break;
+ if( IsDBCSLeadByteEx( CP_ACP, *p ) )
+ n+=2, p+=2;
+ else
+ n+=1, p+=1;
+ }
+
+ return n;
+}
+
+void *bsearch( const void *key, const void *base,
+ size_t num, size_t width,
+ int ( __cdecl *compare )(const void *, const void *))
+{
+ size_t i;
+ const void* p = base;
+ const char* px;
+
+ for( i=0; i<num; i++ )
+ {
+ if( 0==compare( key, p ) )
+ return (void*)p;
+ px = (const char*)p; px+=width; p=(const void*)px;
+ }
+ return NULL;
+}
+