Ruby 1.9.3p327(2012-11-10revision37606)
include/ruby/util.h
Go to the documentation of this file.
00001 /**********************************************************************
00002 
00003   util.h -
00004 
00005   $Author: usa $
00006   created at: Thu Mar  9 11:55:53 JST 1995
00007 
00008   Copyright (C) 1993-2007 Yukihiro Matsumoto
00009 
00010 **********************************************************************/
00011 
00012 #ifndef RUBY_UTIL_H
00013 #define RUBY_UTIL_H 1
00014 
00015 #if defined(__cplusplus)
00016 extern "C" {
00017 #if 0
00018 } /* satisfy cc-mode */
00019 #endif
00020 #endif
00021 
00022 #include "ruby/defines.h"
00023 #ifdef RUBY_EXTCONF_H
00024 #include RUBY_EXTCONF_H
00025 #endif
00026 
00027 #ifndef _
00028 #ifdef __cplusplus
00029 # ifndef  HAVE_PROTOTYPES
00030 #  define HAVE_PROTOTYPES 1
00031 # endif
00032 # ifndef  HAVE_STDARG_PROTOTYPES
00033 #  define HAVE_STDARG_PROTOTYPES 1
00034 # endif
00035 #endif
00036 #ifdef HAVE_PROTOTYPES
00037 # define _(args) args
00038 #else
00039 # define _(args) ()
00040 #endif
00041 #ifdef HAVE_STDARG_PROTOTYPES
00042 # define __(args) args
00043 #else
00044 # define __(args) ()
00045 #endif
00046 #endif
00047 
00048 #if defined __GNUC__ && __GNUC__ >= 4
00049 #pragma GCC visibility push(default)
00050 #endif
00051 
00052 #define scan_oct(s,l,e) ((int)ruby_scan_oct((s),(l),(e)))
00053 unsigned long ruby_scan_oct(const char *, size_t, size_t *);
00054 #define scan_hex(s,l,e) ((int)ruby_scan_hex((s),(l),(e)))
00055 unsigned long ruby_scan_hex(const char *, size_t, size_t *);
00056 
00057 void ruby_qsort(void *, const size_t, const size_t,
00058                 int (*)(const void *, const void *, void *), void *);
00059 
00060 void ruby_setenv(const char *, const char *);
00061 void ruby_unsetenv(const char *);
00062 #undef setenv
00063 #undef unsetenv
00064 #define setenv(name,val) ruby_setenv((name),(val))
00065 #define unsetenv(name,val) ruby_unsetenv(name);
00066 
00067 char *ruby_strdup(const char *);
00068 #undef strdup
00069 #define strdup(s) ruby_strdup(s)
00070 
00071 char *ruby_getcwd(void);
00072 #define my_getcwd() ruby_getcwd()
00073 
00074 double ruby_strtod(const char *, char **);
00075 #undef strtod
00076 #define strtod(s,e) ruby_strtod((s),(e))
00077 
00078 #if defined _MSC_VER && _MSC_VER >= 1300
00079 #pragma warning(push)
00080 #pragma warning(disable:4723)
00081 #endif
00082 #if defined _MSC_VER && _MSC_VER >= 1300
00083 #pragma warning(pop)
00084 #endif
00085 
00086 void ruby_each_words(const char *, void (*)(const char*, int, void*), void *);
00087 
00088 #if defined __GNUC__ && __GNUC__ >= 4
00089 #pragma GCC visibility pop
00090 #endif
00091 
00092 #if defined(__cplusplus)
00093 #if 0
00094 { /* satisfy cc-mode */
00095 #endif
00096 }  /* extern "C" { */
00097 #endif
00098 
00099 #endif /* RUBY_UTIL_H */
00100