citadel.git
13 years agolibev migration - shutdown cleanly.
Wilfried Goesgens [Fri, 7 Jan 2011 11:04:21 +0000 (12:04 +0100)]
libev migration - shutdown cleanly.

13 years agolibev/libc-ares migration
Wilfried Goesgens [Tue, 4 Jan 2011 23:28:13 +0000 (00:28 +0100)]
libev/libc-ares migration

 - resolving of the ip address is working now too; handling whether its an ipv6 host still missing.
 - libev doesn't succeed on doing async connect()

13 years agolibc-ares migration
Wilfried Goesgens [Mon, 3 Jan 2011 23:33:30 +0000 (00:33 +0100)]
libc-ares migration

  - call the ares read/write handlers in our registered read/write callbacks
  - set context appropriate.

13 years agolibev migration
Wilfried Goesgens [Mon, 3 Jan 2011 23:33:00 +0000 (00:33 +0100)]
libev migration

  - fix spawning of event-queue thread.

13 years agolibev/libc-ares migration
Wilfried Goesgens [Mon, 3 Jan 2011 23:00:47 +0000 (00:00 +0100)]
libev/libc-ares migration

  - move c-ares query into the eventqueue context
  - queueing of the new context via the pipe doesn't work anymore with libev

13 years agolibc-ares migration - first implementation draft
Wilfried Goesgens [Mon, 3 Jan 2011 15:36:43 +0000 (16:36 +0100)]
libc-ares migration - first implementation draft

 - dns queries are going out, but the reply isn't read so far.

13 years agolibev migration
Wilfried Goesgens [Sat, 1 Jan 2011 18:14:51 +0000 (19:14 +0100)]
libev migration

 - make connect() async; add wrappers in event_client to abstract it to our clients
 - switch libevent -> libev
 - start abstraction for dns asynchronisation via c-ares

13 years agoLibev / libcares : add build dependencies
Wilfried Goesgens [Sat, 1 Jan 2011 17:00:42 +0000 (18:00 +0100)]
Libev / libcares : add build dependencies

13 years agolibevent migration: discarded, make this libev
Wilfried Goesgens [Sat, 1 Jan 2011 16:59:50 +0000 (17:59 +0100)]
libevent migration: discarded, make this libev

  - detect c-ares
  - detect libev

13 years agoLibevent Migration
Wilfried Goesgens [Mon, 27 Dec 2010 15:45:53 +0000 (16:45 +0100)]
Libevent Migration

  - use a bigger read buffer for the smtp client
  - differentiate between queue and smtp client in log messages
  - migrate scheduling of jobs to a locked list

13 years agoLibevent Migration
Wilfried Goesgens [Mon, 27 Dec 2010 15:39:16 +0000 (16:39 +0100)]
Libevent Migration

 - change the place where we check the space for the \0 for reading
 - we didn't check the case to increase the buffer while reading if the reading algorithm didn't find a complete line yet...

13 years agoHashlist: add function to flush the contents of a hashlist.
Wilfried Goesgens [Mon, 27 Dec 2010 15:38:30 +0000 (16:38 +0100)]
Hashlist: add function to flush the contents of a hashlist.

13 years agoLibevent Migration
Wilfried Goesgens [Sun, 26 Dec 2010 12:23:42 +0000 (13:23 +0100)]
Libevent Migration

 - handle the SMTP-reply-stati in a propper way
 - skip empty lines while serializing messages

13 years agoStrBuf_NextToken: if the source is empty, flush the target.
Wilfried Goesgens [Sun, 26 Dec 2010 12:22:55 +0000 (13:22 +0100)]
StrBuf_NextToken: if the source is empty, flush the target.

13 years agolibevent Migration:
Wilfried Goesgens [Sun, 26 Dec 2010 10:56:41 +0000 (11:56 +0100)]
libevent Migration:

 - hook in libevent into shutdown mechanism, so we can cleanly shutdown citserver again.

13 years agolibevent Migration
Wilfried Goesgens [Sun, 26 Dec 2010 10:40:54 +0000 (11:40 +0100)]
libevent Migration

 - add a state 'terminate' to the event handlers
 - use the Terminate-callback to free all members.

13 years agoLibevent Integration
Wilfried Goesgens [Thu, 23 Dec 2010 00:09:14 +0000 (01:09 +0100)]
Libevent Integration

 - move bounce into util
 - rewrite parsing of queue entry; keep structure in memory, serialize after last message is sent.

13 years agoLibevent integration
Wilfried Goesgens [Tue, 21 Dec 2010 23:40:34 +0000 (00:40 +0100)]
Libevent integration

 - add a configure option --with-experimental_eventsmtp to enable the following items
 - add a thread that spawns a signaling pipe plus the libevent queue
 - add functions that allow to add jobs via that signalling pipe
 - add experimental smtp queue handler sending messages via libevent (message goes out but then... ;-)

13 years agolibevent integration
Wilfried Goesgens [Tue, 21 Dec 2010 23:37:55 +0000 (00:37 +0100)]
libevent integration

 - Add functions that are able to do just one read()/write() so they can be used as libevent callbacks.
 - Add linereader function that reads from "incomplete buffers" and falls back to a re-attemt if not enough data is available.

13 years agoReplaced client_read() with socket_read_blob() in serv_network.c
Art Cancro [Mon, 20 Dec 2010 04:12:19 +0000 (23:12 -0500)]
Replaced client_read() with socket_read_blob() in serv_network.c

13 years agoCleaned up the loop that receives network spool. NOT THE FIX
Art Cancro [Fri, 17 Dec 2010 19:12:36 +0000 (14:12 -0500)]
Cleaned up the loop that receives network spool.  NOT THE FIX

13 years agoContent-transfer-encoding: ISO-8859-1 joins the 'no encoding' list
Art Cancro [Fri, 17 Dec 2010 04:10:06 +0000 (23:10 -0500)]
Content-transfer-encoding: ISO-8859-1 joins the 'no encoding' list

13 years agoMove: give the SMTP-Client its own file.
Wilfried Goesgens [Wed, 15 Dec 2010 11:44:57 +0000 (12:44 +0100)]
Move: give the SMTP-Client its own file.

 - move the SMTP-Client functionality into its own file.
 - re-bootstrap so the new files are added to your makefiles!

13 years agoRoom info in banner should respect utf8 when cutting the text; fixed.
Wilfried Goesgens [Wed, 15 Dec 2010 09:03:03 +0000 (10:03 +0100)]
Room info in banner should respect utf8 when cutting the text; fixed.

13 years agoRoom info in banner was completely broken. Fixed.
Art Cancro [Tue, 14 Dec 2010 22:13:03 +0000 (17:13 -0500)]
Room info in banner was completely broken.  Fixed.

13 years agoSMTP Async I/O:
Wilfried Goesgens [Mon, 13 Dec 2010 17:23:31 +0000 (18:23 +0100)]
SMTP Async I/O:

 - while sending data, wait relative to the size of the mail /128 + a minimal set of 50.

13 years agoJ-escape instead of U-escape attachment removal urls.
Art Cancro [Mon, 13 Dec 2010 15:12:25 +0000 (10:12 -0500)]
J-escape instead of U-escape attachment removal urls.

13 years agoremove attach works now but has filename escape bugs
Art Cancro [Mon, 13 Dec 2010 05:02:22 +0000 (00:02 -0500)]
remove attach works now but has filename escape bugs

13 years agourl binding and skeleton js for remove attachment
Art Cancro [Mon, 13 Dec 2010 00:29:21 +0000 (19:29 -0500)]
url binding and skeleton js for remove attachment

13 years agoWrote the ajax call for remove_attachment(), todo: js binding
Art Cancro [Mon, 13 Dec 2010 00:11:39 +0000 (19:11 -0500)]
Wrote the ajax call for remove_attachment(), todo: js binding

13 years agoMimeparser Bugfix
Wilfried Goesgens [Sun, 12 Dec 2010 14:47:14 +0000 (15:47 +0100)]
Mimeparser Bugfix

 - use the right pointer to calculate the terminal border of the first memchr

13 years agoIgnore all of our test binaries.
Wilfried Goesgens [Sun, 12 Dec 2010 14:09:49 +0000 (15:09 +0100)]
Ignore all of our test binaries.

13 years agoAdd possibility to trigger the tests with Valgrind
Wilfried Goesgens [Sun, 12 Dec 2010 14:06:09 +0000 (15:06 +0100)]
Add possibility to trigger the tests with Valgrind

13 years agoBugfix: several errors in our test program
Wilfried Goesgens [Sun, 12 Dec 2010 14:03:43 +0000 (15:03 +0100)]
Bugfix: several errors in our test program

 - initialize the count before passing it into wildfirea
 - free all our buffers properly.

13 years agoBugfixing: free our hashpositions...
Wilfried Goesgens [Sun, 12 Dec 2010 14:02:40 +0000 (15:02 +0100)]
Bugfixing: free our hashpositions...

13 years agoAttachments count is now updated in navbar
Art Cancro [Sun, 12 Dec 2010 03:15:35 +0000 (22:15 -0500)]
Attachments count is now updated in navbar

13 years agoShow throbber during attachment upload
Art Cancro [Sun, 12 Dec 2010 02:23:16 +0000 (21:23 -0500)]
Show throbber during attachment upload

13 years agoHide upload box during an upload. TODO: add throbber.
Art Cancro [Sat, 11 Dec 2010 22:24:06 +0000 (17:24 -0500)]
Hide upload box during an upload.  TODO: add throbber.

13 years agoremove image borders in the upload pane
Art Cancro [Sat, 11 Dec 2010 17:41:31 +0000 (12:41 -0500)]
remove image borders in the upload pane

13 years agoChange 'Attach' to 'Attachments: 0' (updater will follow)
Art Cancro [Sat, 11 Dec 2010 17:36:13 +0000 (12:36 -0500)]
Change 'Attach' to 'Attachments: 0' (updater will follow)

13 years agoIntegrate IGs tests
Wilfried Goesgens [Sat, 11 Dec 2010 15:36:07 +0000 (16:36 +0100)]
Integrate IGs tests

 - add to run_tests.sh
 - wrap c-unit around the test cases...

13 years agoNew upload dialog is now feature complete
Art Cancro [Sat, 11 Dec 2010 02:23:52 +0000 (21:23 -0500)]
New upload dialog is now feature complete

13 years agoUploading now works. It is ugly but it works.
Art Cancro [Fri, 10 Dec 2010 21:25:51 +0000 (16:25 -0500)]
Uploading now works.  It is ugly but it works.

13 years agoPerform uploads via a (eventually to be hidden) iframe
Art Cancro [Fri, 10 Dec 2010 21:18:58 +0000 (16:18 -0500)]
Perform uploads via a (eventually to be hidden) iframe

13 years agoMerge branch 'master' of ssh://git.citadel.org/appl/gitroot/citadel
Art Cancro [Fri, 10 Dec 2010 18:31:54 +0000 (13:31 -0500)]
Merge branch 'master' of ssh://git.citadel.org/appl/gitroot/citadel

13 years agoMimeparser Bugfix:
Wilfried Goesgens [Fri, 10 Dec 2010 18:14:35 +0000 (19:14 +0100)]
Mimeparser Bugfix:

 - while parsing the headers, don't forget to \0 the extracted strings.

13 years agoPerformance improvement / Bugfix Mime handling while outputting messages:
Wilfried Goesgens [Fri, 10 Dec 2010 18:13:28 +0000 (19:13 +0100)]
Performance improvement / Bugfix Mime handling while outputting messages:

  - we switched to decode just that part we'd want to output, we should choose the pointer with the decoded buffer.

13 years agoMerge branch 'master' of ssh://git.citadel.org/appl/gitroot/citadel
Art Cancro [Fri, 10 Dec 2010 17:26:25 +0000 (12:26 -0500)]
Merge branch 'master' of ssh://git.citadel.org/appl/gitroot/citadel

13 years agoReworking the enter message and attach dialogs
Art Cancro [Fri, 10 Dec 2010 17:26:22 +0000 (12:26 -0500)]
Reworking the enter message and attach dialogs

13 years agoFix typo in translation.
Wilfried Goesgens [Fri, 10 Dec 2010 17:18:12 +0000 (18:18 +0100)]
Fix typo in translation.

13 years agoMimeparser bugfix; if we continue we must flush the already parsed headers too.
Wilfried Goesgens [Fri, 10 Dec 2010 17:14:40 +0000 (18:14 +0100)]
Mimeparser bugfix; if we continue we must flush the already parsed headers too.

13 years agoHunt for mime_parser bugs...
Wilfried Goesgens [Fri, 10 Dec 2010 16:08:54 +0000 (17:08 +0100)]
Hunt for mime_parser bugs...

 - don't prepend the content-type/content-length - mime header if we don't intend to use it anyways.

13 years agoMerge branch 'master' of ssh://git.citadel.org/appl/gitroot/citadel
Art Cancro [Thu, 9 Dec 2010 17:07:24 +0000 (12:07 -0500)]
Merge branch 'master' of ssh://git.citadel.org/appl/gitroot/citadel

13 years agoMore tiny bugfixes on the mimeparser
Wilfried Goesgens [Thu, 9 Dec 2010 00:05:16 +0000 (01:05 +0100)]
More tiny bugfixes on the mimeparser

 - in the for-loop, search first start as initializer, this saves one unneccesary memcmp
 - cr/lf detection: we need to do that _before_ the first mime content is evaluated.

13 years agoMerge branch 'master' of ssh://git.citadel.org/appl/gitroot/citadel
Art Cancro [Wed, 8 Dec 2010 14:04:52 +0000 (09:04 -0500)]
Merge branch 'master' of ssh://git.citadel.org/appl/gitroot/citadel

13 years agoAdded the regression test I wrote while fixing stripallbut() yesterday
Art Cancro [Wed, 8 Dec 2010 03:17:47 +0000 (22:17 -0500)]
Added the regression test I wrote while fixing stripallbut() yesterday

13 years agoCorrectly evaluate whether we have a decoded mime part, or if we need to output the...
Wilfried Goesgens [Tue, 7 Dec 2010 22:30:12 +0000 (23:30 +0100)]
Correctly evaluate whether we have a decoded mime part, or if we need to output the raw content.

13 years agoPerformance: use memchr to find the next '-' and then call memcmp to check whether...
Wilfried Goesgens [Tue, 7 Dec 2010 22:20:43 +0000 (23:20 +0100)]
Performance: use memchr to find the next '-' and then call memcmp to check whether this is a boundary

 - we fast forward to the next '-' since every mime boundary starts with '-'
 - from a '-' we check thorough whether at this point we can find the searched boundary

Thanks to cirrus for pointing me to memchr()

13 years agoAdd more test-mimecontainers.
Wilfried Goesgens [Tue, 7 Dec 2010 21:27:52 +0000 (22:27 +0100)]
Add more test-mimecontainers.

13 years agoBe more conservative about when not to apply binary searching for the next boundary...
Wilfried Goesgens [Tue, 7 Dec 2010 21:24:49 +0000 (22:24 +0100)]
Be more conservative about when not to apply binary searching for the next boundary or not.

13 years agoRewrote stripallbut() again, tested extensively
Art Cancro [Tue, 7 Dec 2010 16:31:35 +0000 (11:31 -0500)]
Rewrote stripallbut() again, tested extensively

13 years agoAdd test running our wildfire sample code
Wilfried Goesgens [Sun, 5 Dec 2010 16:31:26 +0000 (17:31 +0100)]
Add test running our wildfire sample code

13 years agoIn the name of test-coverage: #if 0 the parts we don't need.
Wilfried Goesgens [Sun, 5 Dec 2010 16:30:40 +0000 (17:30 +0100)]
In the name of test-coverage: #if 0 the parts we don't need.

13 years agoDon't forget to cleanup gcov output in xdgmime
Wilfried Goesgens [Sun, 5 Dec 2010 16:14:43 +0000 (17:14 +0100)]
Don't forget to cleanup gcov output in xdgmime

13 years agoMore shell calls to all our tests
Wilfried Goesgens [Sun, 5 Dec 2010 14:47:18 +0000 (15:47 +0100)]
More shell calls to all our tests

 - look up all our staticaly coded mimetypes from randomly generated filenames
 - read all contents we find across all test mimecontainers.

13 years agoAdd test for loading one mimepart from the mimestructure; decode its content inside.
Wilfried Goesgens [Sun, 5 Dec 2010 14:45:21 +0000 (15:45 +0100)]
Add test for loading one mimepart from the mimestructure; decode its content inside.

 - this found a bug of a const char being modified inside of the call.

13 years agoAdd test for looking up the icon for a specific mimetype.
Wilfried Goesgens [Sun, 5 Dec 2010 14:43:46 +0000 (15:43 +0100)]
Add test for looking up the icon for a specific mimetype.

13 years agoDon't put a static buffer into content_encoding; its changed inside.
Wilfried Goesgens [Sun, 5 Dec 2010 14:41:19 +0000 (15:41 +0100)]
Don't put a static buffer into content_encoding; its changed inside.

 - while decoding thats overwritten. probably a bug sleeping in here waiting for its discovery for a long time.

13 years agoUpdate to launchpad R24
Wilfried Goesgens [Thu, 2 Dec 2010 00:20:40 +0000 (01:20 +0100)]
Update to launchpad R24

 - remove fuzzy strings, launchpad doesn't support them
 - add new translation

13 years agoadd scripts to run and test and have code coverage analysis across them.
Wilfried Goesgens [Thu, 2 Dec 2010 00:18:28 +0000 (01:18 +0100)]
add scripts to run and test and have code coverage analysis across them.

13 years agoAdd possibility to trigger the mimeparser internal encoding-decoder
Wilfried Goesgens [Thu, 2 Dec 2010 00:17:05 +0000 (01:17 +0100)]
Add possibility to trigger the mimeparser internal encoding-decoder

13 years agoTestdata: add an email with base64 encoded content.
Wilfried Goesgens [Thu, 2 Dec 2010 00:14:53 +0000 (01:14 +0100)]
Testdata: add an email with base64 encoded content.

13 years agoRemove loop, its a little unfriendly to run it a 10000 times.
Wilfried Goesgens [Thu, 2 Dec 2010 00:14:10 +0000 (01:14 +0100)]
Remove loop, its a little unfriendly to run it a 10000 times.

13 years agoAdd test to call mime lookup algorithms
Wilfried Goesgens [Thu, 2 Dec 2010 00:11:41 +0000 (01:11 +0100)]
Add test to call mime lookup algorithms

13 years agoIgnore more missing .gcov files
Wilfried Goesgens [Thu, 2 Dec 2010 00:10:41 +0000 (01:10 +0100)]
Ignore more missing .gcov files

13 years agoMerge branch 'master' of ssh://git.citadel.org/appl/gitroot/citadel
Wilfried Goesgens [Wed, 1 Dec 2010 21:25:57 +0000 (22:25 +0100)]
Merge branch 'master' of ssh://git.citadel.org/appl/gitroot/citadel

13 years agoResync to launchpad translation add Bulgarian
Wilfried Goesgens [Wed, 1 Dec 2010 21:24:13 +0000 (22:24 +0100)]
Resync to launchpad translation add Bulgarian

 - remove fuzzy strings, launchpad doesn't have them and patching chokes on them

13 years agoIgnore gcov generated files.
Wilfried Goesgens [Wed, 1 Dec 2010 19:40:30 +0000 (20:40 +0100)]
Ignore gcov generated files.

13 years agoDismissing the popup-is-blocked window now opens it (hopefully)
Art Cancro [Tue, 30 Nov 2010 09:04:37 +0000 (04:04 -0500)]
Dismissing the popup-is-blocked window now opens it (hopefully)

13 years agotoggleModal() now explicitly accepts an argument of 1 (on) or 0 (off)
Art Cancro [Tue, 30 Nov 2010 08:57:00 +0000 (03:57 -0500)]
toggleModal() now explicitly accepts an argument of 1 (on) or 0 (off)

13 years agoModal dialog for the popup blocker warning
Art Cancro [Tue, 30 Nov 2010 08:40:45 +0000 (03:40 -0500)]
Modal dialog for the popup blocker warning

13 years agofix stupidness in closewindow icon
Art Cancro [Tue, 30 Nov 2010 08:03:05 +0000 (03:03 -0500)]
fix stupidness in closewindow icon

13 years agomake the cancel button 32x32
Art Cancro [Tue, 30 Nov 2010 07:57:28 +0000 (02:57 -0500)]
make the cancel button 32x32

13 years agoUse modal dialog for confirm logoff
Art Cancro [Tue, 30 Nov 2010 06:52:24 +0000 (01:52 -0500)]
Use modal dialog for confirm logoff

13 years agoIntegrated a modal dialog framework (not in use yet)
Art Cancro [Tue, 30 Nov 2010 06:11:43 +0000 (01:11 -0500)]
Integrated a modal dialog framework (not in use yet)

13 years agoMemleak: getaddrinfo needs freeadrinfo here too.
Wilfried Goesgens [Sun, 28 Nov 2010 20:02:00 +0000 (21:02 +0100)]
Memleak: getaddrinfo needs freeadrinfo here too.

13 years agoMime-parser rework: parse the mime headers of the current container so we can guess...
Wilfried Goesgens [Sun, 28 Nov 2010 18:46:18 +0000 (19:46 +0100)]
Mime-parser rework: parse the mime headers of the current container so we can guess the size of the content to jump accross; binary/ascii is used to switch the search algorithm for the next boundary.

 - the old mime parser version skipped empty containers; we do this by hand
 - for some reason the numbers addressing the mimeparts grow different, maybe mixed use of old/new may cause confusion...

13 years agoExclude testdata from the distribution tgzs; they don't need it and they're huge.
Wilfried Goesgens [Sat, 27 Nov 2010 13:15:51 +0000 (14:15 +0100)]
Exclude testdata from the distribution tgzs; they don't need it and they're huge.

13 years agoAnonimize?
Wilfried Goesgens [Sat, 27 Nov 2010 13:11:18 +0000 (14:11 +0100)]
Anonimize?

13 years agoignore new test binary for git
Wilfried Goesgens [Sat, 27 Nov 2010 13:10:47 +0000 (14:10 +0100)]
ignore new test binary for git

13 years agoAdd test mime containers that (used to..) cause troubles in the recent past.
Wilfried Goesgens [Sat, 27 Nov 2010 13:09:47 +0000 (14:09 +0100)]
Add test mime containers that (used to..) cause troubles in the recent past.

13 years agoAdd mime-parser-testing tool
Wilfried Goesgens [Sat, 27 Nov 2010 12:52:45 +0000 (13:52 +0100)]
Add mime-parser-testing tool

to be able to test the mimeparser in an insulated binary, here we have a test, that reads a given file into memory, and parses it using the mime parser.

13 years agoMore hickups found due to the mimetester; pre push.
Wilfried Goesgens [Sat, 27 Nov 2010 12:45:46 +0000 (13:45 +0100)]
More hickups found due to the mimetester; pre push.

 - the_mime_parser (): we need to know where parse_MimeHeaders() finds the end of the headers.
 - the_mime_parser (): don't move the pointer around just to count up to the end-pointer. this can be done by pointer substraction.
 - parse_MimeHeaders (): move the parameter so our caller gets to know what we read
 - parse_MimeHeaders (): if (ptr >= content_end)  after reading is probably a bug (also there in stable..), that makes us fail to read the last line, if. move it to the end of the pointer.
 - don't call strchr twice; remember & evaluate the first result
 - stripping the disposition-header can be done right where we found it.

13 years agofix crash: we want to do is_digit() on *char* not on char*
Wilfried Goesgens [Sat, 27 Nov 2010 11:51:16 +0000 (12:51 +0100)]
fix crash: we want to do is_digit() on *char* not on char*

some bug the mimetest found before push.

13 years agoDon't leak FD's while serving static files if they're not there
Wilfried Goesgens [Fri, 26 Nov 2010 13:44:31 +0000 (14:44 +0100)]
Don't leak FD's while serving static files if they're not there

Ok, this case is rather theoretic, but if for some reason files disappear
after webcits start initialising, we might hit this point.

13 years agoFirst Step: chop mimeparser into pieces.
Wilfried Goesgens [Fri, 26 Nov 2010 00:13:32 +0000 (01:13 +0100)]
First Step: chop mimeparser into pieces.

 - move the cluster of buffers into a struct compatible to the CKEY macro
 - add the interesting other evaluated flags & numbers to that struct
 - move finding & parsing of the 'interesting headers' into its own function.

by all this we hope to get informations about the mimepart before we have to search for its end

13 years ago* rewrite stripallbut() to return the length
Wilfried Goesgens [Fri, 26 Nov 2010 00:11:08 +0000 (01:11 +0100)]
* rewrite stripallbut() to return the length

 - remove strlen from the for loop abort condition
 - move string around _once_
 - return the length of the string we operated on, since we know it after the operation anyways.

13 years ago<HTML> and <HEAD> set to overflow: hidden to get rid of extra scrollbars
Art Cancro [Thu, 25 Nov 2010 20:10:00 +0000 (15:10 -0500)]
<HTML> and <HEAD> set to overflow: hidden to get rid of extra scrollbars

13 years agoremove a FIXME that we fixed
Art Cancro [Thu, 25 Nov 2010 15:34:01 +0000 (10:34 -0500)]
remove a FIXME that we fixed

13 years agoavoid decoding mime-parts unless we realy need to.
Wilfried Goesgens [Mon, 22 Nov 2010 23:36:48 +0000 (00:36 +0100)]
avoid decoding mime-parts unless we realy need to.

 - suff... doesn't need to decode all attachments; we just need the mime headers here.
 - when searching for the attachment we want to output, we also don't need the content.
 - when outputing an attachment, just decode the attachment were actualy interested in.