X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/efd7ca5cc728e835a5caf0dfbece2651610b9e56..b91306a7d8552b3314562378931dc9aad5f2a3c2:/docs/README.developers diff --git a/docs/README.developers b/docs/README.developers index 86b2f897..1d3fd737 100644 --- a/docs/README.developers +++ b/docs/README.developers @@ -22,6 +22,15 @@ commit checklist 8. notify nmh-users? +--------------------------------- +C library/system call usage notes +--------------------------------- +* Use m_mktemp2() or m_mktemp() instead of mkstemp(3) (see section on + nmh temporary files below). +* Use m_unlink() instead of unlink(3). +* Use done() instead of _exit(3) except after a fork(3). + + ------------------------- autoconf & automake files ------------------------- @@ -162,6 +171,38 @@ OS function nmh-local version to use instead getpass() nmh_getpass() +------------------- +nmh temporary files +------------------- + +To create a temporary file, use m_mktemp2() or m_mktemp(). They use +mkstemp(3), but they also register the temporary file for removal on +program termination. So, do not use mkstemp() directly. + +To further support this, nmh_init() must be called at the beginning of +main(). And, if a child process is not going to immediately call one +of the exec(3) functions or _exit(3) after a fork(3), it should call +unregister_for_removal(0). Finally, nmh_init() sets up signal handlers +for several signals: these signal handlers should not be disabled. + + +-------------- +nmh test suite +-------------- + +The nmh test suite is run through the Makefile, with "make check" +or "make distcheck". + +To enable the use of valgrind, where available, set the environment +variable NMH_VALGRIND to a non-null value. However, a separate +environment variable, VALGRIND_ME, triggers the use of valgrind in +test/inc/test-eom-align because it greatly extends the duration of +that test. + +In the nmh test suite, nmh programs to be tested should be invoked +through the run_test or run_prog shell functions defined in +test/common.sh. + ------------- releasing nmh -------------