That's quite interesting .. I was also thinking of some other code bases that could be scavenged.. [php comes to mind, there are interesting things in there.. but I won't derail.. ]
What mainly caught my attention is the inbox filter engine. I'm not sure (perhaps I should read back some.. ) exactly what you're referring to. Hopefully it relates to 'delivery'. I've been running around the citadel code like Joe Biden looking for an ice-cream cone.. tracking down what it takes to get 'delivery' and where aliases are translated. I'm also thinking about the config option for roommailalias and perhaps (going back quite a while) some kind of global aliasing scheme.. Something like the old mail.aliases .. I'm still hurting for lack of that functionality. I really think it should be "native Citadel". [<this-address>] goes to [<this-one>,<this-other-one>] with no worries whether it's a room, an account, a list, or an external email address. global_aliases|from1,to1,to2|from2,to2 Something like that. > > > > Mon Oct 19 2020 11:11:36 AM EDT from IGnatius T Foobar @ Uncensored >Subject: diff/patch library! > > It's been said that a "POP Toaster" (a standalone mail server that does, >at minimum, POP and SMTP) is an application that any decent hacker can throw >together in a weekend. I found this one called "XMail" >[http://xmailserver.org] that was started in 1999 and apparently abandoned in >2010. It doesn't have IMAP or Webmail but it looks like a nice compact little >server that someone put a reasonable amount of thought into. I wonder if >anyone is still using it. Nothing has been updated since 2010 and all of the >mirror sites are long gone. > >It's only a coincidence that I stumbled upon XMail, and I'm not actually >interested in it at all, except to notice that it's an artifact of a time >when lots of people were building little mail servers. What brought me to the >project's web site was a mentio somewhere of a library called "libxdiff" >[http://www.xmailserver.org/xdiff-lib.html] that implements "diff" and >"patch" functions as a C library. I don't know the relationship between these >two projects, or maybe one is just hosted on the other's web site because >they're the same author? But I've been looking for something like this for >years. I don't know how I missed it until now. > >Citadel's wiki engine stores page revisions by saving a MIME multipart >message, with the first part being the current version of the page and the >remaining parts being a series of "diff" outputs from version to version. >When I wrote the wiki engine many years ago, I looked all over the place for >a C library that could handle diff/patch functions. All I found was >implementations in higher level languages. I briefly looked at GNU Diff to >see if I could just pull out the parts I needed, but that code is so >byzantine that there's no hope of taking it apart. > >I ended up writing code that calls out to the "diff" and "patch" command >line utilities. I *hate* doing that, and it's always bothered me. Now that >I've discovered LibXDiff, I can rewrite that bit of code to keep all of the >processing inside the Citadel Server's memory space, instead of making >potentially insecure calls to system utilities. > >But this effort won't begin until I finish the new inbox filter engine :) > > > >