X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=doc%2Fdevel-notes.txt;h=18b0b73facfaa87140a56e492254e0278127c374;hp=616e7f0f33dbcbb11448418d63758c33e6688663;hb=f3cbb9f51357972f6e74244494236a41dc4d84cd;hpb=6833ce8bdca2d64e14485118f2a4417b7e1cb1b1 diff --git a/doc/devel-notes.txt b/doc/devel-notes.txt index 616e7f0..18b0b73 100644 --- a/doc/devel-notes.txt +++ b/doc/devel-notes.txt @@ -1,18 +1,13 @@ -Subject: Developers' notes -From: Thomas Roessler -Date: Tue, 9 May 2000 19:48:08 +0200 - - Required tools -------------- -If you are planning to hack on mutt, please subscribe to the -mutt-dev mailinglist (mutt-dev@mutt.org, contact -majordomo@mutt.org). Announcements about recent development +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: +You'll need several GNU development utilities for working on Madmutt: - automake @@ -57,33 +52,37 @@ You'll need several GNU development utilities for working on mutt: - GNU make may be needed for the dependency tricks -Getting started from CVS +Getting started from SVN ------------------------ -Once you've checked out a copy of the source from CVS, 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. +Once you've checked out a copy of the source from SVN from +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. A word about warnings --------------------- -Mutt'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 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 @@ -96,11 +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. - -- try to keep mutt as portable as possible. +- When adding new options, make the old behaviour the default. Also, + add them to UPGRADING in the top-level source directory. +- try to keep Madmutt as portable as possible. Documentation ------------- @@ -110,14 +108,19 @@ where you may have to add documentation: - doc/manual.sgml.{head,tail} contain The Manual. -- doc/muttrc.man.{head,tail} contain an abriged version of The +- doc/muttngrc.man.{head,tail} contain an abriged version of The Manual in nroff format (see man(7)), which deals with configuration file commands. Configuration _variables_ are documented directly in init.h. Note that this includes documentation for possibly added format flags! -The parts of The Manual and the muttrc manual page dealing with +When adding variables which depend on system-functionality and/or +./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 from that documentation. To start this process, type "make update-doc" in the top-level source directory. @@ -138,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 @@ -160,7 +165,7 @@ similar to [ntg]roff: - .ts on a line starts a "verbose tscreen" environment (name taken from SGML). Please try to keep lines inside such an environment short; a length of abut 40 characters should be ok. This is - necessary to avoid a really bad-looking muttrc (5) manual page. + necessary to avoid a really bad-looking muttngrc (5) manual page. - .te on a line finishes this environment. @@ -175,4 +180,18 @@ similar to [ntg]roff: Do _not_ use any other SGML or nroff formatting instructions here! -$Id: devel-notes.txt,v 3.0 2002/01/24 13:35:07 roessler Exp $ + +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.