aboutsummaryrefslogtreecommitdiffhomepage
path: root/compat
Commit message (Collapse)AuthorAge
* timegm: add portable implementation (Solaris support)Gravatar Blake Jones2013-08-23
| | | | | | | | | | The timegm(3) function is a non-standard extension to libc which is available in GNU libc and on some BSDs. Although SunOS had this function in its libc, Solaris (unfortunately) removed it. This patch implements a very simple version of timegm() which is good enough for parse-time-string.c. Signed-off-by: Vladimir Marek <vlmarek@volny.cz>
* strsep: check for availability (Solaris support)Gravatar Blake Jones2013-08-23
| | | | | | | | | | Solaris does not ship a version of the strsep() function. This change adds a check to "configure" to see whether notmuch needs to provide its own implementation, and if so, it uses the new version in "compat/strsep.c" (which was copied from Mutt, and apparently before that from glibc). Signed-off-by: Vladimir Marek <vlmarek@volny.cz>
* asctime: check for standards compliance (Solaris support)Gravatar Vladimir Marek2013-08-23
| | | | | | | | | | | | | | Add checks to "configure" to see whether _POSIX_PTHREAD_SEMANTICS needs to be defined to get the right number of arguments in the prototypes for asctime_r(). Solaris' default implementation conforms to POSIX.1c Draft 6, rather than the final POSIX.1c spec. The standards-compliant version can be used by defining _POSIX_PTHREAD_SEMANTICS. This change also adds the file "compat/check_asctime.c", which configure uses to perform its check, and modifies compat/compat.h to define _POSIX_PTHREAD_SEMANTICS if configure detected it was needed. Signed-off-by: Vladimir Marek <vlmarek@volny.cz>
* getpwuid: check for standards compliance (Solaris support)Gravatar Blake Jones2013-08-23
| | | | | | | | | | | | | | Add checks to "configure" to see whether _POSIX_PTHREAD_SEMANTICS needs to be defined to get the right number of arguments in the prototypes for getpwuid_r(). Solaris' default implementation conforms to POSIX.1c Draft 6, rather than the final POSIX.1c spec. The standards-compliant version can be used by defining _POSIX_PTHREAD_SEMANTICS. This change also adds the file "compat/check_getpwuid.c", which configure uses to perform its check, and modifies compat/compat.h to define _POSIX_PTHREAD_SEMANTICS if configure detected it was needed. Signed-off-by: Vladimir Marek <vlmarek@volny.cz>
* Extend compat/READMEGravatar Justus Winter2012-09-27
| | | | Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
* Provide a NORETURN_ATTRIBUTE macro similar to PRINTF_ATTRIBUTEGravatar Justus Winter2012-09-27
| | | | | | | | This attribute is understood by gcc since version 2.5. clang provides support for testing for function attributes using __has_attribute. For other compilers this macro evaluates to the empty string. Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
* Provide a __has_attribute compatibility macroGravatar Justus Winter2012-09-27
| | | | | | | | | __has_attribute is defined by clang and tests whether a given function attribute is supported by clang. Add a compatibility macro for other compilers. Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
* Silence buildbot warnings about unused resultsGravatar Austin Clements2012-01-21
| | | | | | | | | | | This ignores the results of the two writes in sigint handlers even harder than before. While my libc lacks the declarations that trigger these warnings, this can be tested by adding the following to notmuch.h: __attribute__((warn_unused_result)) ssize_t write(int fd, const void *buf, size_t count);
* Fix dependency generation for compat, test, and utilGravatar Austin Clements2012-01-19
| | | | | This adds source files in compat, test, and util to SRCS so that the top-level Makefile.local will generate dependency files for them.
* fix sum moar typos [text files]Gravatar Pieter Praet2011-06-23
| | | | | | | | | Various typo fixes in auxiliary text files included with the source, (README, TODO, etc.). Signed-off-by: Pieter Praet <pieter@praet.org> Edited-by: Carl Worth <cworth@cworth.org> Restricted to just text files.
* build: Add support for non-source-directory builds.Gravatar Carl Worth2011-03-09
| | | | | | | | | | | | | | Such as: mkdir build cd build ../configure make This is implemented by having the configure script set a srcdir variable in Makefile.config, and then sprinkling $(srcdir) into various make rules. We also use vpath directives to convince GNU make to find the source files from the original source directory.
* Wrap the compat header in extern "C" { } when compiling C++ sourcesGravatar Tomas Carnecky2010-04-27
| | | | | | This fixes a build error on OpenSolaris where the final liking of notmuch fails because the linker can't find strcasestr() referenced from thread.cc.
* Add simplistic reimplementation of strcasestr to compat libraryGravatar Dirk Hohndel2010-04-14
| | | | | | | | | | While all systems that I have access to support strcasestr, it is in fact not part of POSIX. So here's a fallback reimplementation based on POSIX functions. Signed-off-by: Dirk Hohndel <hohndel@infradead.org> Tested-by: Tomas Carnecky <tom@dbservice.com> (on OpenSolaris snv_134)
* Fix up Makefile for build.Gravatar Aaron Ecay2010-04-14
| | | | | | | | | | | Must set extra_c(xx)flags before including subdir Makefile.local's, so that there is a blank slate that the subdirs can add on to. Must include subdir Makefile.local's before global one, otherwise the compat sources are not added to the list of those to be compiled. Signed-off-by: Aaron Ecay <aaronecay@gmail.com>
* Move "config" test programs to "compat".Gravatar Carl Worth2010-04-06
| | | | | | | | It makes sense to me to have the little tests for functionality right next to the comptability implementations of that same functionality. But also, this means I can now tab-complete ./configure from the three initial characters (rather than the seven required previously).
* Makefile.local: Automatically use makefile modeGravatar David Edmondson2010-04-03
| | | | | | | | | We add a magic line to the beginning of each Makefile.local file to help the editor know that it should use makefile mode for editing the file, (even though the filename isn't exactly "Makefile"). Edited-by: Carl Worth <cworth@cworth.org>: Expand treatment from emacs/Makefile.local to each instance of Makefile.local.
* Makefile: Fix Makefiles to depend on all child Makefile fragments.Gravatar Carl Worth2010-03-10
| | | | | | | | | | | | | | We were previously maintaining two lists of the child Makefile fragments---one for the includes and another for the dependencies. So, of course, they drifted and the dependency list wasn't up to date. We fix this by adding a single subdirs variable, and then using GNU Makefile substitution to generate both the include and the dependency lists. Some side effect of this change caused the '=' assignment of the dir variable to not work anymore. I'm not sure why that is, but using ':=' makes sense here and fixes the problem.
* Makefiles: Use .DEFAULT to support arbitrary targets from sub directories.Gravatar Carl Worth2010-01-06
| | | | | Taking advantage of the .DEFAULT construct means that we won't need to explicitly list targets such as "clean", etc. in each sub-Makefile.
* getdelim: Silence a (bogus) compiler warning.Gravatar Carl Worth2009-12-01
| | | | | | Some compilers complain that result might be used uninitialized in this function. I believe such compilers simply aren't looking hard enough, but it's easy enough to silence them.
* Makefile: Incorporate getline implementation into the build.Gravatar Carl Worth2009-12-01
| | | | | It's unconditional for a very short time. We expect to soon be building it only if necessary.
* compat/getdelim: Silence a warning about mixing of signed/unsigned.Gravatar Carl Worth2009-12-01
| | | | | If the length is ever so large as to overflow, then we'll end up returning a negative value (which indicates an error anyway).
* compat: Change includes from config.h to compat.h.Gravatar Carl Worth2009-12-01
| | | | | We may switch to using an autoconf-like config.h, but we're not doing that just yet.
* compat: Add implementation of getline from gnulib.Gravatar Carl Worth2009-12-01
These were copied from the gnulib git repository as of: commit 563c779682040ed4b89c9b4bbe428dcd8157c90a They come under the GNU GPL v3 (or later) exactly as notmuch is licensed.