Hello Chris,
first I would like to thank for your extensive code audit and the effort
needed for the diffs. And I am glad that you like clapf.
>>config.h and example.conf. I renamed the variable cfg.workdir to
>>cfg.tmpdir to reflect is usage as it is in config.h. The variable
>>cfg.sqlite3 is renamed to cfg.sqlite3dbfile, just to clarify it.
>>The new variables are (used regex here): cfg.user(sqlite3|my)dbfile,
>>cfg.user_datadir, cfg.per_user_queues and cfg.keep_queuefiles. The
>>first two are used instead of config.h definitions in e.g. spamdrop.c.
>>The third is used in spamdrop.c to decide whether the queufiles should
>>be placed in cfg.queuedir or in the old user-specific directory. The
>>last makes the usage of cfg.queuedir possible.
Though the cfg.sqlite3/cfg.workdir naming seems good enough for me, but
your clarification may look indeed better. But I think I will not
change the current naming convention just before a stable release.
Not to mention that every existing clapf user has to adjust these
variables. So I recommend that let's wait until 0.3.32-rc1 and I will
incorporate these changes if you will still feel they're important.
However changing the defines to some variables does not sound a good
idea to me. The defines are not so static, instead they are determined
at configure time, and can be set by the --localstatedir option. Your
solution introduces a little difficulty, that I cannot set the proper
owner and permissions on those directories at install time, since I have
no idea what the user will set.
Then normally you should not define the cfg.sqlite3 variable for using
eg. spamdrop, because it figures out where your own token database is.
The idea is that every user has his own data directory where his own
token database resides. That's why I use the same name, eg. clapf.sdb
for every user.
>>- db_init_sqlite3.diff: There is only one thing, the number of
>>arguments should be four not three, or not? The rest is more or less
>>cosmetic.
Well, the script is able to determine on its own whether the ham and
spam arguments are maildirs or mailboxes. That's why we are good with 3
arguments.
>>- misc.diff: This patch adds the usage of cfg.store_only_spam in
>>spamdrop.c and enabled german language detection in lang.c (or is
>>there a reason it is disabled?).
This patch is accepted. The language detection is still an experimental
feature. I decided to comment the German check because I don't get
German ham letters, and it takes an additional time to check whether the
message is in German. Anyway you are right. Btw. I would like you to
check the German language detection if appropriate, to see whether it
works correctly.
Best regards,
Janos