Use good m_ functions, because it smell like a flower, version 2.
[apps/madmutt.git] / doc / devel-notes.txt
index 3cfcfc9..18b0b73 100644 (file)
@@ -1,13 +1,13 @@
 Required tools
 --------------
 
-If you are planning to hack on Mutt-ng, please subscribe to the
-Mutt-ng-devel mailinglist (mutt-ng-deve-l@lists.berlios.de).
+If you are planning to hack on Madmutt, please subscribe to the
+Madmutt-devel mailinglist (Madmutt-deve-l@lists.berlios.de).
 Announcements about recent development
 versions go to that mailing list, as go technical discussions and
 patches.
 
-You'll need several GNU development utilities for working on mutt-ng:
+You'll need several GNU development utilities for working on Madmutt:
 
 - automake
 
@@ -56,8 +56,8 @@ Getting started from SVN
 ------------------------
 
 Once you've checked out a copy of the source from SVN from
-svn.berlios.de/svnroot/repos/mutt-ng , you'll need to run the script
-called 'prepare' that is in the root directory.  The script does all the
+svn.berlios.de/svnroot/repos/Madmutt , you'll need to run the script
+called 'autogen.sh' that is in the root directory.  The script does all the
 automake/autoconf magic that needs to be done with a fresh checkout. If
 all steps succeed, you'll have a configure script to start off with.
 
@@ -65,21 +65,24 @@ all steps succeed, you'll have a configure script to start off with.
 A word about warnings
 ---------------------
 
-Mutt-ng's default build process sets some pretty restrictive compiler
+Madmutt's default build process sets some pretty restrictive compiler
 flags which may lead to lots of warnings.  Generally, warnings are
 something which should be eliminated.
 
 Nevertheless, the code in intl/ is said to generate some warnings with
 the compiler settings we usually rely upon.  This code is not
-maintained by the Mutt-ng developpers, so please redirect any comments to
+maintained by the Madmutt developpers, so please redirect any comments to
 the GNU gettext library's developpers.
 
 
 Style Guide
 -----------
 
-- global functions should have the prefix "mutt_".  All
-  other functions should be declared "static".
+- global functions outside the library directory should have the prefix
+  "mutt_". All other functions should be declared "static". All global
+  functions defined within the library directory should have the the
+  prefix according to their source file, i.e. "str_" for everything in
+  lib/str.[ch] etc.
 
 - avoid global vars where possible.  If one is required,
   try to contain it to a single source file and declare it
@@ -92,12 +95,10 @@ Style Guide
   in ELM and PINE is the tremendous duplication of code...
   Help keep Mutt small!
 
-- when adding new options, make the old behaviour the
-  default.
+- When adding new options, make the old behaviour the default. Also,
+  add them to UPGRADING in the top-level source directory.
 
-- try to keep Mutt-ng as portable as possible.
-
-- do not use C++-style comments (i.e. "// Comment")
+- try to keep Madmutt as portable as possible.
 
 Documentation
 -------------
@@ -178,3 +179,19 @@ similar to [ntg]roff:
    This is used to protect indentations in tables.
 
 Do _not_ use any other SGML or nroff formatting instructions here!
+
+
+String comparison
+-----------------
+
+A word of warning about string comparisons: Since Madmutt may run in a
+huge variety of locales, case-insensitive string comparisons and
+case conversions may be dangerous.  For instance, in iso-8859-9,
+tolower('I') is DIFFERENT from 'i' - it's indeed the Turkish dotless
+lowercase i.
+
+For this reason, always use the ascii_* functions defined in ascii.h
+and implemented in ascii.c when comparing or handling strings which
+are defined as us-ascii.  This concerns lots of text-based
+protocols, message header tags, character set names, domain names,
+e-mail addresses, etc.