tor/src/lib
Nick Mathewson c8ccd028a7 Don't redefine str(n)casecmp on windows unless they're missing
When we do redefine them, use inline functions instead of #define.

This fixes a latent code problem in our redefinition of these
functions, which was exposed by our refactoring: Previously, we
would #define strcasecmp after string.h was included, so nothing bad
would happen.  But when we refactored, we would sometimes #define it
first, which was a problem on mingw, whose headers contain
(approximately):

inline int strcasecmp (const char *a, const char *b)
   { return _stricmp(a,b); }

Our define turned this into:
  inline int _stricmp(const char *a, const char *b)
    { return _stricmp(a,b); }

And GCC would correctly infer that this function would loop forever,
rather than actually comparing anything.  This caused bug 26594.

Fixes bug 26594; bug not in any released version of Tor.
2018-07-02 11:50:17 -04:00
..
arch File-level documentation for some of src/lib. 2018-07-01 20:22:55 -04:00
cc File-level documentation for some of src/lib. 2018-07-01 20:22:55 -04:00
compress File-level documentation for some of src/lib. 2018-07-01 20:22:55 -04:00
container File-level documentation for some of src/lib. 2018-07-01 20:22:55 -04:00
crypt_ops File-level documentation for some of src/lib. 2018-07-01 20:22:55 -04:00
ctime Remove the util_bug.h include from smartlist.h. 2018-06-22 10:50:14 -04:00
defs File-level documentation for some of src/lib. 2018-07-01 20:22:55 -04:00
encoding File-level documentation for some of src/lib. 2018-07-01 20:22:55 -04:00
err File-level documentation for some of src/lib. 2018-07-01 20:22:55 -04:00
fdio File-level documentation for some of src/lib. 2018-07-01 20:22:55 -04:00
fs File-level documentation for some of src/lib. 2018-07-01 20:22:55 -04:00
intmath File-level documentation for some of src/lib. 2018-07-01 20:22:55 -04:00
lock File-level documentation for some of src/lib. 2018-07-01 20:22:55 -04:00
log Merge branch 'fs_refactor' 2018-06-27 14:45:17 -04:00
malloc Split container.c based on container types, and minimize includes 2018-06-22 09:49:13 -04:00
math File-level documentation for some of src/lib. 2018-07-01 20:22:55 -04:00
memarea File-level documentation for some of src/lib. 2018-07-01 20:22:55 -04:00
meminfo File-level documentation for some of src/lib. 2018-07-01 20:22:55 -04:00
net File-level documentation for some of src/lib. 2018-07-01 20:22:55 -04:00
osinfo add an include to fix macos, and probably bsd too 2018-06-29 14:03:13 -04:00
process Prune the .may_include files a bit; detect unused lines in them 2018-07-01 18:14:28 -04:00
sandbox Minimize includes from sandbox.c 2018-06-27 10:11:27 -04:00
smartlist_core Tabify all of the .am files. 2018-07-01 09:37:28 -04:00
string Don't redefine str(n)casecmp on windows unless they're missing 2018-07-02 11:50:17 -04:00
term Extract getpass to a new lib/term library 2018-06-29 12:21:52 -04:00
testsupport New script to check includes for modularity violations 2018-06-21 14:05:33 -04:00
thread compat_threads.c needs string.h for memset. 2018-06-28 15:20:26 -04:00
time Fix macOS includes 2018-06-28 17:15:53 -05:00
tls Prune the .may_include files a bit; detect unused lines in them 2018-07-01 18:14:28 -04:00
trace Remove the util_bug.h include from smartlist.h. 2018-06-22 10:50:14 -04:00
wallclock Extract time functionality into lib/wallclock and lib/time 2018-06-28 13:01:54 -04:00
include.libdonna.am Move responsibility for libdonna out of src/common 2018-06-21 13:19:00 -04:00