Rocco Rutte:
[apps/madmutt.git] / doc / devel-notes.txt
index 3cfcfc9..f6455f6 100644 (file)
@@ -57,7 +57,7 @@ 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
+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.
 
@@ -78,8 +78,11 @@ 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,13 +95,11 @@ 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")
-
 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 Mutt-ng 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.