always build POP support, we do a /mail/ client, right ?
[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
 --------------
 
 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.
 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
 ------------------------
 
 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
 
 
 A word about warnings
@@ -78,8 +78,11 @@ the GNU gettext library's developpers.
 Style Guide
 -----------
 
 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
 
 - 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!
 
   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.
 
 
 - try to keep Mutt-ng as portable as possible.
 
-- do not use C++-style comments (i.e. "// Comment")
-
 Documentation
 -------------
 
 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
 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
 
 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
 
  
  - \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
  - \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!
    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.