[linux-l] mbox/Maildir/tar

Rocco Rutte pdmef at gmx.net
Mi Nov 28 18:23:51 CET 2007


Hi,

* Oswald Buddenhagen wrote:
>On Wed, Nov 28, 2007 at 03:06:25PM +0100, Rocco Rutte wrote:
>> * Oswald Buddenhagen wrote:

>> weil er die Flags sortiert (einzelne Zeichen), damit unqiue:2,RS
>> identisch mit unique:2,SR ist.

>die flags müssen sogar sortiert sein. das steht sogar in der reichlich
>mageren doku zu dem format, was schon was heißen soll.
>http://cr.yp.to/proto/maildir.html meine ich wohlgemerkt.

Ach, da steht "ASCII order", hätte man auch einfach "sorted" schreiben 
können, sorry, das habe ich glatt übersehen... :)

>ich wüßte jetzt nur all zu gerne, ob man bei den flags kleinschreibug
>verwenden darf und die dann auch anerkanntermaßen was anderes heißen.

>blöd wird es nur, wenn ein programm sich
>darauf verläßt, daß ein file mit geänderten flags unter dem alten namen
>nicht mehr gefunden wird, zufällig die neuen flags aber den alten mit
>anderer schreibung entsprechen. und was mach das system, wenn man
>blubb_A in blubb_a umzubenennen versucht?

Bei HFS+ geht das auf der Kommandozeile. Mercurial escaped das ('_'), 
was bei Maildir aber leider ausfällt (Sortierung).

>worum es geht ... courier benutzt weitere buchstaben als index in eine
>tabelle, um imap keywords zu speichern. die idee gefällt mir ... fragt
>sich natürlich, wie man das mutt beibringen soll, sonst ist es ja
>wertlos.

Für mutt ist das relativ schmerzlos, weil es die vorhandenen Flags 
beibehält und nur die Flags aus dem String entfernt, die es kennt (und 
die internen Flags setzt); der Rest bleibt als Kopie und wird immer 
mitgeschleift (alles case-sensitiv), zusammengebaut und sortiert. D.h. 
es müsste eigentlich ohne Anpassungen funktionieren.

Mit den keywords ist das auch nicht so tragisch: In
maildir_delayed_parsing() am Anfang die Tabelle lesen und nach dem 
finalen Parsen jeder Nachricht (hcache/wirklich parsen) die Keywords aus 
der Tabelle setzen (X-Label bietet sich an). Fertig.

MfG, Rocco



Mehr Informationen über die Mailingliste linux-l