summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYaakov Selkowitz <yselkowi@redhat.com>2013-09-08 07:11:33 +0000
committerYaakov Selkowitz <yselkowi@redhat.com>2013-09-08 07:11:33 +0000
commit45070312d433402354951f6965aea48262faec02 (patch)
tree0c5b6498c4d8af8bc8e763b86cb4945c98f00f1c
parent3c654cd48ad636775e915d99e6c316fbbe8d221d (diff)
downloadcygnal-45070312d433402354951f6965aea48262faec02.tar.gz
cygnal-45070312d433402354951f6965aea48262faec02.tar.bz2
cygnal-45070312d433402354951f6965aea48262faec02.zip
* libc/include/search.h (__compar_fn_t): Add typedef.
(tdelete, tfind, tsearch): Use it. * libc/include/stdlib.h (__compar_fn_t): Add typedef. (bsearch, qsort): Use it.
-rw-r--r--newlib/ChangeLog7
-rw-r--r--newlib/libc/include/search.h11
-rw-r--r--newlib/libc/include/stdlib.h9
3 files changed, 22 insertions, 5 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 25d30d08c..6e2389a0b 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,10 @@
+2013-09-08 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
+
+ * libc/include/search.h (__compar_fn_t): Add typedef.
+ (tdelete, tfind, tsearch): Use it.
+ * libc/include/stdlib.h (__compar_fn_t): Add typedef.
+ (bsearch, qsort): Use it.
+
2013-08-19 Meador Inge <meadori@codesourcery.com>
* libc/stdlib/__atexit.c (__register_exitproc): NULL-ify
diff --git a/newlib/libc/include/search.h b/newlib/libc/include/search.h
index c78ce1841..db2c48f5b 100644
--- a/newlib/libc/include/search.h
+++ b/newlib/libc/include/search.h
@@ -42,6 +42,11 @@ struct hsearch_data
size_t htablesize;
};
+#ifndef __compar_fn_t_defined
+#define __compar_fn_t_defined
+typedef int (*__compar_fn_t) (const void *, const void *);
+#endif
+
__BEGIN_DECLS
int hcreate(size_t);
void hdestroy(void);
@@ -49,10 +54,10 @@ ENTRY *hsearch(ENTRY, ACTION);
int hcreate_r(size_t, struct hsearch_data *);
void hdestroy_r(struct hsearch_data *);
int hsearch_r(ENTRY, ACTION, ENTRY **, struct hsearch_data *);
-void *tdelete(const void *, void **, int (*)(const void *, const void *));
+void *tdelete(const void *, void **, __compar_fn_t);
void tdestroy (void *, void (*)(void *));
-void *tfind(const void *, void **, int (*)(const void *, const void *));
-void *tsearch(const void *, void **, int (*)(const void *, const void *));
+void *tfind(const void *, void **, __compar_fn_t);
+void *tsearch(const void *, void **, __compar_fn_t);
void twalk(const void *, void (*)(const void *, VISIT, int));
__END_DECLS
diff --git a/newlib/libc/include/stdlib.h b/newlib/libc/include/stdlib.h
index eee118d56..fc15a3cce 100644
--- a/newlib/libc/include/stdlib.h
+++ b/newlib/libc/include/stdlib.h
@@ -47,6 +47,11 @@ typedef struct
} lldiv_t;
#endif
+#ifndef __compar_fn_t_defined
+#define __compar_fn_t_defined
+typedef int (*__compar_fn_t) (const _PTR, const _PTR);
+#endif
+
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
@@ -71,7 +76,7 @@ _PTR _EXFUN(bsearch,(const _PTR __key,
const _PTR __base,
size_t __nmemb,
size_t __size,
- int _EXFNPTR(_compar,(const _PTR, const _PTR))));
+ __compar_fn_t _compar));
_PTR _EXFUN_NOTHROW(calloc,(size_t __nmemb, size_t __size));
div_t _EXFUN(div,(int __numer, int __denom));
_VOID _EXFUN(exit,(int __status) _ATTRIBUTE ((noreturn)));
@@ -113,7 +118,7 @@ int _EXFUN(_mkstemp_r, (struct _reent *, char *));
int _EXFUN(_mkstemps_r, (struct _reent *, char *, int));
char * _EXFUN(_mktemp_r, (struct _reent *, char *) _ATTRIBUTE ((__warning__ ("the use of `mktemp' is dangerous; use `mkstemp' instead"))));
#endif
-_VOID _EXFUN(qsort,(_PTR __base, size_t __nmemb, size_t __size, int(*_compar)(const _PTR, const _PTR)));
+_VOID _EXFUN(qsort,(_PTR __base, size_t __nmemb, size_t __size, __compar_fn_t _compar));
int _EXFUN(rand,(_VOID));
_PTR _EXFUN_NOTHROW(realloc,(_PTR __r, size_t __size));
#ifndef __STRICT_ANSI__