mirror of
https://github.com/rkd77/elinks.git
synced 2024-11-04 08:17:17 -05:00
e2cc0bd434
Instead, convert the element pointers inside the comparison functions. The last argument of qsort() is supposed to be of type int (*)(const void *, const void *). Previously, comp_links() was defined to take struct link * instead of const void *, and the type mismatch was silenced by casting the function pointer to void *. This was in principle not portable because: (1) The different pointer types may have different representations. In a word-oriented machine, the const void * might include a byte selector while the struct link * might not. (2) Casting a function pointer to a data pointer can lose bits in some memory models. Apparently this does not occur in POSIX-conforming systems though, as dlsym() would fail if it did. This commit also fixes hits_cmp() and compare_dir_entries(), which had similar problems. However, I'm leaving alias_compare() in src/intl/gettext/localealias.c unchanged for now, so as not to diverge from the GNU version. I also checked the bsearch() calls but they were all okay, apart from one that used the alias_compare() mentioned above. |
||
---|---|---|
.. | ||
gettext | ||
charsets.c | ||
charsets.h | ||
codepage.inc | ||
entity.inc | ||
Makefile | ||
uni_7b.inc |