Rocco Rutte:
[apps/madmutt.git] / doc / devel-notes.txt
index be46f2a..f6455f6 100644 (file)
@@ -2,7 +2,7 @@ Required tools
 --------------
 
 If you are planning to hack on Mutt-ng, please subscribe to the
-Mutt-ng-dev mailinglist (mutt-ng-deve-@lists.berlios.de).
+Mutt-ng-devel mailinglist (mutt-ng-deve-l@lists.berlios.de).
 Announcements about recent development
 versions go to that mailing list, as go technical discussions and
 patches.
@@ -56,10 +56,10 @@ 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 automake/autoconf magic that needs to be done with
-a fresh checkout.
+svn.berlios.de/svnroot/repos/mutt-ng , 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.
 
 
 A word about warnings
@@ -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
 -------------
 
@@ -115,8 +116,9 @@ Configuration _variables_ are documented directly in init.h.   Note
 that this includes documentation for possibly added format flags!
 
 When adding variables which depend on system-functionality and/or
-./configure switches, you have to add additional availability
-information to avoid confusion in the manual.
+./configure switches, you have to add additional "availability"
+information to init.h to avoid confusion in the manual. Please see
+init.h for examples.
 
 The parts of The Manual and the muttngrc manual page dealing with
 these variables, and the global Muttrc, are generated automatically
@@ -139,6 +141,8 @@ similar to [ntg]roff:
  
  - \fB switches to boldface
 
+ - \fT switches to typewriter (only for SGML and ignored otherwise)
+
  - \fP switches to normal display
 
  - \(as can be used to represent an asterisk (*).  This is intended
@@ -175,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.