simplify whatnow.c/main() function
[mmh] / docs / README.developers
index e1456ff..dcec2a7 100644 (file)
@@ -15,15 +15,15 @@ directory structure
 -------------------
 
 Following is a list of mmh's directories along with a brief description
-of the purpose of each one.  Meanings are given for the abbreviations,
+of the purpose of each one. Meanings are given for the abbreviations,
 but note that these meanings are just informed guesses as to what the
 MH developers were thinking.
 
 ./
-    The top-level directory.  Contains files like README and INSTALL.
+    The top-level directory. Contains files like README and INSTALL.
 
 config/
-    Contains utility files for the `configure' process.  Ordinarily
+    Contains utility files for the `configure' process. Ordinarily
     nothing in here needs to be messed with, but config/config.c is
     very interesting to have a look at.
 
@@ -45,15 +45,15 @@ man/
     manual pages.
 
 sbr/
-    "sbr" stands for "subroutine(s)".  For the most part, each source
+    "sbr" stands for "subroutine(s)". For the most part, each source
     file in this directory contains a single function with the same
-    name as the source file.  These functions are of general use and
+    name as the source file. These functions are of general use and
     are called from throughout mmh.
 
 uip/
-    "uip" stands for "User Interface Programs".  Most mmh commands have a
+    "uip" stands for "User Interface Programs". Most mmh commands have a
     file in this directory named <command>.c containing the code for that
-    command (e.g. repl.c).  In some cases there is also an auxiliary file
+    command (e.g. repl.c). In some cases there is also an auxiliary file
     called <command>sbr.c which contains additional subroutines called
     from <command>.c.
 
@@ -85,111 +85,15 @@ using a minimum of autoconf 2.61.
 
 Most of the configure-related files are automatically generated. The
 only files you should need to manually edit are `acconfig.h' and
-`configure.ac'.  Don't, for instance, edit `config.h.in'. Though it is
+`configure.ac'. Don't, for instance, edit `config.h.in'. Though it is
 an input file from the point of view of the users (and the configure
 script) it is an output file from the point of view of the developers
 (and the autoconf script).
 
 Note that the automatically generated autoconf files (such as
 `config.h.in', `stamp-h.in', and `configure'), are NOT kept in the
-version control system.  Thus, when you check out the source tree,
+version control system. Thus, when you check out the source tree,
 you need to run the `autogen.sh' script before you can build anything:
 
        % ./autogen.sh
 
-
--------------------------------------------------------
-nmh-local functions to use in preference to OS versions
--------------------------------------------------------
-
-For some system functions whose availability or behavior varies from OS
-to OS, nmh conditionally uses a local definition with the same name as
-the OS function. For other functions, developers need to avoid the OS
-versions and always use the nmh-supplied function.  Here is a list of
-such functions:
-
-OS function  nmh-local version to use instead
-===========  ================================
-getpass()    nmh_getpass()
-
-
--------------
-releasing mmh
--------------
-
-To make a public release of mmh (we'll use version 1.0 as example
-here):
-
- 1. % echo 1.0 > VERSION
-    % date +"%Y-%m-%d" > DATE
-    (DATE should contain something like "2012-12-08")
-
- 2. % git commit VERSION DATE; git push
-
- 3. % git tag -a mmh-1.0 -m 'Releasing mmh-1.0'
-
- 4. % make mmhdist
-
- 5. Untar mmh-1.0.tar.gz and `diff -r' it vs. your workspace.  Make
-    sure no files got left out of the distribution that should be in
-    it (due to someone forgetting to update the DIST variables in the
-    Makefiles).
-
- 6. If you have root access on your machine, it's good at this point
-    to do:
-
-    % chown -R 0:0 nmh-1.0
-    % tar cvf nmh-1.0.tar nmh-1.0
-    % gzip nmh-1.0.tar
-
-    If you leave the files in the archive as being owned by yourself,
-    your UID may coincide with one of a user on a machine where mmh is
-    being installed, making it possible for that user to Trojan the mmh
-    code before the system administrator finishes installing it.
-
- 7. Make sure your new tarball uncompresses and untars with no problem.
-    Make sure you can configure, make, and install mmh from it.
-
- 8. If all is well and your tarball is final, go back to your workspace
-    and do:
-
-    % echo 1.0+dev > VERSION
-
- 9. % git commit VERSION; git push
-
-10. Generate an MD5 hash and a PGP signature of the tarball.
-
-    % md5sum mmh-1.0.tar.gz >mmh-1.0.tar.gz.md5sum
-    % gpg --output mmh-1.0.tar.gz.sig --detach-sig mmh-1.0.tar.gz
-
-    You can verify the hash and signature with:
-
-    % md5sum -c mmh-1.0.tar.gz.md5sum
-    % gpg --verify mmh-1.0.tar.gz.sig mmh-1.0.tar.gz
-
-11. Upload the files to the web space:
-
-    % scp -p mmh-1.0.tar.gz* marmaro.de:.../mmh/
-
-12. Update the http://marmaro.de/prog/mmh/ homepage.
-
-13. Add a news item to relevant pages, e.g. freshmeat.net.
-
-14. Send the release announcement email to the following places:
-    <nmh-workers@nongnu.org>
-    <nmh-announce@nongnu.org>
-    <mh-users@ics.uci.edu> *or* <comp.mail.mh> (bidirectional gateway)
-
-    If the release fixes significant security holes, also send an
-    announcement to bugtraq@securityfocus.com.
-
-    Preferably, the announcement should contain:
-    - the MD5 hash
-    - the URL for the tarball
-    - the URL of the website
-    - a brief summary of visible changes
-    - the URL of the git diff page that shows a detailed list of
-      changes. The changes between 0.9 and 1.0 would be shown by:
-      <http://git.marmaro.de/?p=mmh;a=commitdiff;hp=mmh-0.9;h=mmh-1.0>
-
-    Further more, the message should be PGP-signed.