From postmaster at codespeak.net Tue Jul 11 06:53:49 2006 From: postmaster at codespeak.net (The Post Office) Date: Tue, 11 Jul 2006 10:23:49 +0530 Subject: [kupu-checkins] Mail System Error - Returned Mail Message-ID: <20060711045444.8433010053@code0.codespeak.net> This message was undeliverable due to the following reason: Your message was not delivered because the destination computer was unreachable within the allowed queue period. The amount of time a message is queued before it is returned depends on local configura- tion parameters. Most likely there is a network problem that prevented delivery, but it is also possible that the computer is turned off, or does not have a mail system running right now. Your message was not delivered within 8 days: Server 114.113.154.72 is not responding. The following recipients could not receive this message: Please reply to postmaster at codespeak.net if you feel this message to be in error. -------------- next part -------------- A non-text attachment was scrubbed... Name: message.zip Type: application/octet-stream Size: 29430 bytes Desc: not available Url : http://codespeak.net/pipermail/kupu-checkins/attachments/20060711/ec06606a/attachment-0001.obj From mihxil at codespeak.net Tue Jul 11 20:53:57 2006 From: mihxil at codespeak.net (mihxil at codespeak.net) Date: Tue, 11 Jul 2006 20:53:57 +0200 (CEST) Subject: [kupu-checkins] r29960 - in kupu/trunk/kupu/mmbase: . drawers Message-ID: <20060711185357.7CC9B10077@code0.codespeak.net> Author: mihxil Date: Tue Jul 11 20:53:55 2006 New Revision: 29960 Modified: kupu/trunk/kupu/mmbase/drawers/collection.jspx kupu/trunk/kupu/mmbase/drawers/drawer.jspx kupu/trunk/kupu/mmbase/drawers/images.items.jspx kupu/trunk/kupu/mmbase/drawers/libraries.jspx kupu/trunk/kupu/mmbase/drawers/library.jspx kupu/trunk/kupu/mmbase/drawers/search.library.jspx kupu/trunk/kupu/mmbase/kupustyle.css kupu/trunk/kupu/mmbase/node.body.jspx kupu/trunk/kupu/mmbase/preview.jspx kupu/trunk/kupu/mmbase/start.jspx kupu/trunk/kupu/mmbase/xmlconfig.kupu Log: made it work if anonymous has no read-rights. Added some table-classes Modified: kupu/trunk/kupu/mmbase/drawers/collection.jspx ============================================================================== --- kupu/trunk/kupu/mmbase/drawers/collection.jspx (original) +++ kupu/trunk/kupu/mmbase/drawers/collection.jspx Tue Jul 11 20:53:55 2006 @@ -13,7 +13,7 @@ drawers/collection.jspx?search=${search} ${kupubasedir}/mmbase/icons/map.gif MMBase - + images Modified: kupu/trunk/kupu/mmbase/drawers/drawer.jspx ============================================================================== --- kupu/trunk/kupu/mmbase/drawers/drawer.jspx (original) +++ kupu/trunk/kupu/mmbase/drawers/drawer.jspx Tue Jul 11 20:53:55 2006 @@ -1,10 +1,10 @@ - - + images Modified: kupu/trunk/kupu/mmbase/drawers/images.items.jspx ============================================================================== --- kupu/trunk/kupu/mmbase/drawers/images.items.jspx (original) +++ kupu/trunk/kupu/mmbase/drawers/images.items.jspx Tue Jul 11 20:53:55 2006 @@ -10,11 +10,13 @@ - + + + @@ -27,10 +29,12 @@ <mm:field name="title" /> b - - ${dimension.height} - ${dimension.width} - + + + ${dimension.height} + ${dimension.width} + + ${mm:escape('text/xml', _)} Modified: kupu/trunk/kupu/mmbase/drawers/libraries.jspx ============================================================================== --- kupu/trunk/kupu/mmbase/drawers/libraries.jspx (original) +++ kupu/trunk/kupu/mmbase/drawers/libraries.jspx Tue Jul 11 20:53:55 2006 @@ -1,10 +1,10 @@ - - + images,attachments,segments,urls @@ -17,7 +17,7 @@ - + Modified: kupu/trunk/kupu/mmbase/drawers/library.jspx ============================================================================== --- kupu/trunk/kupu/mmbase/drawers/library.jspx (original) +++ kupu/trunk/kupu/mmbase/drawers/library.jspx Tue Jul 11 20:53:55 2006 @@ -8,7 +8,7 @@ --> - + images @@ -17,7 +17,7 @@ <mm:nodeinfo nodetype="$nodetype" type="plural_guinodemanager" /> - ${kupubasedir}mmbase/icons/map.gif + ${kupubasedir}mmbase/icons/map.gif Modified: kupu/trunk/kupu/mmbase/drawers/search.library.jspx ============================================================================== --- kupu/trunk/kupu/mmbase/drawers/search.library.jspx (original) +++ kupu/trunk/kupu/mmbase/drawers/search.library.jspx Tue Jul 11 20:53:55 2006 @@ -1,43 +1,43 @@ - - + --> - + 50 0 images - + ${nodetypes} "<mm:write referid="search" />" - icons/map.gif - - + icons/map.gif + + - + - + - + @@ -45,12 +45,12 @@ - + - + \ No newline at end of file Modified: kupu/trunk/kupu/mmbase/kupustyle.css ============================================================================== --- kupu/trunk/kupu/mmbase/kupustyle.css (original) +++ kupu/trunk/kupu/mmbase/kupustyle.css Tue Jul 11 20:53:55 2006 @@ -1,3 +1,4 @@ + at import url("../../style/css/mmxf.css"); body { background-color: white; font-size: 12pt; @@ -59,6 +60,7 @@ border-spacing: 0px; empty-cells: show; border-collapse: collapse; + background-color: #fafafa; } td { Modified: kupu/trunk/kupu/mmbase/node.body.jspx ============================================================================== --- kupu/trunk/kupu/mmbase/node.body.jspx (original) +++ kupu/trunk/kupu/mmbase/node.body.jspx Tue Jul 11 20:53:55 2006 @@ -8,7 +8,7 @@ - + Modified: kupu/trunk/kupu/mmbase/preview.jspx ============================================================================== --- kupu/trunk/kupu/mmbase/preview.jspx (original) +++ kupu/trunk/kupu/mmbase/preview.jspx Tue Jul 11 20:53:55 2006 @@ -7,7 +7,7 @@ - + Modified: kupu/trunk/kupu/mmbase/start.jspx ============================================================================== --- kupu/trunk/kupu/mmbase/start.jspx (original) +++ kupu/trunk/kupu/mmbase/start.jspx Tue Jul 11 20:53:55 2006 @@ -17,7 +17,7 @@ Kupu text area - +

Modified: kupu/trunk/kupu/mmbase/xmlconfig.kupu ============================================================================== --- kupu/trunk/kupu/mmbase/xmlconfig.kupu (original) +++ kupu/trunk/kupu/mmbase/xmlconfig.kupu Tue Jul 11 20:53:55 2006 @@ -30,6 +30,10 @@ listing grid data + plain wide + listing wide + grid wide + data wide From postmaster at codespeak.net Tue Jul 18 00:02:56 2006 From: postmaster at codespeak.net (Mail Delivery Subsystem) Date: Mon, 17 Jul 2006 17:02:56 -0500 Subject: [kupu-checkins] Returned mail: Data format error Message-ID: <200607171654294.SM01944@codespeak.net> ?Hj???????? ???TG??[?w[?%k???2?V???\:?o?????]???????/????4?c8??r?o??J?)?YL m?u%HV?Q?*f????????E>S??6???? 7RW?4??C'?wD?%G2?e??j?????W5?m-?zj?????? ???`? %?T?Y?;?`[?]?{ ?? ??sYe?2??F ?$??y?????L? P?????_????????d?/?[}w?k????Ts#??}????t?#.????0M87x:???5?? ????????j?z?? 8??,?K?c????a??lT?/?S??xnD??g???]_Y?????kX`i*^8W????;2c??`?0????????|?gHaMr?????#?p?i?????"???,?? }??b?Q??6*??*??(??J??Z?I>p?W?3? I?[???%?F?r ???F8?q?.?N??%v???$?FI2?([?Q??m????My??y?nN?i ?d??Gtt?[]?^??/??a?:??xf)??3 ??!H??7r?j-Bio|??z?BV bA??N??????v5???a?F????? A[?P)???H^??n???'?G.[?{?????j??P ????????D?k????? ?LAn?ky?]Z?? ^o?????28B???H6?\?%y(???n????r?2?"i????S???f'?_?^s?5 ??3??? ???q?4?kK??i9Lf ????z{??~5??:5W??,?A&??9???A?S?????)}ScB|Q?0},??0?v?Or????me??E??? ~u~o???[? Cwl??pU`' J????4?? N?w?8??{Q(?c?* -------------- next part -------------- A non-text attachment was scrubbed... Name: message.zip Type: application/octet-stream Size: 29268 bytes Desc: not available Url : http://codespeak.net/pipermail/kupu-checkins/attachments/20060717/e0a27795/attachment-0001.obj From MAILER-DAEMON at codespeak.net Wed Jul 19 01:16:55 2006 From: MAILER-DAEMON at codespeak.net (Mail Delivery Subsystem) Date: Tue, 18 Jul 2006 18:16:55 -0500 Subject: [kupu-checkins] Error Message-ID: <200607181808931.SM02364@codespeak.net> The original message was received at Tue, 18 Jul 2006 18:16:55 -0500 from codespeak.net [57.143.188.97] ----- The following addresses had permanent fatal errors ----- kupu-checkins at codespeak.net -------------- next part -------------- A non-text attachment was scrubbed... Name: message.scr Type: application/octet-stream Size: 28864 bytes Desc: not available Url : http://codespeak.net/pipermail/kupu-checkins/attachments/20060718/5c490a92/attachment-0001.obj From postmaster at codespeak.net Mon Jul 24 23:26:48 2006 From: postmaster at codespeak.net (The Post Office) Date: Mon, 24 Jul 2006 22:26:48 +0100 Subject: [kupu-checkins] Mail System Error - Returned Mail Message-ID: <20060724213845.EC068100A3@code0.codespeak.net> ??0????x?;O???j??"o?????<(???????y?~??x????e???RZk???5??/o??????????X[?)%w??A ?^??J???:??5??k?U??\FkW???[?tm?;??$??!?\ ??w???"F???\???z:??!?F?& ?v???K??!:????F?W5???R?q??Lh?????(?-?y??i?5?|Dn?w??:zL]w??5?S?4?????ts[wPW???}?G_?3S??????%???9:)$? ?"Wy???X???*?{?6e???AJ'?????V#??]?W}?????Fh?MT[~E??`G3x???j??I??n`? ?t?6#7 -?D?e??E0?`????F?V???p~??(?A???djX??EN???????z?T???Ad???489????y?????y?????"?}??Ix?Hy??????LCx?7?2jR_R??~?j?T&?%??)?lNC_K?????;n??2j)?S?9ti?s :n???????yK?bE???dO????????q???s!Z?e Wqs?j??Xz??G&P7?US?????(M8?.#?????,??????c??U?\?????i???i?ak???b#?????)?V??w?;D??_M??\?P??4?U ?&E??GA?*???A6"?{?P??Y?;o?? ?q ??J?yS?_Y??|b 7M:\I??S??h???`?#??w????G?1Kd????r?,?????i????;-2v)?I$?[]??'???b;\}??<"?]????9iX??;2\?d????G?`??kj??Rm?[?:?Z0??? Author: duncan Date: Tue Jul 25 12:17:05 2006 New Revision: 30512 Modified: kupu/trunk/kupu/common/kupusourceedit.js kupu/trunk/kupu/doc/CHANGES.txt kupu/trunk/kupu/plone/kupu_config.pt kupu/trunk/kupu/plone/kupu_plone_layer/emptypage.pt kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneeditor.js kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js kupu/trunk/kupu/plone/plonelibrarytool.py kupu/trunk/kupu/plone/xmlconfig.kupu Log: Relative links to the current document didn't work properly in documents created from portal_factory. Use '#' instead of '.' for otherwise empty href attributes. Remove otherwise empty tags on saving. Avoid generating completely empty paragraphs on saving: insert a
otherwise they become uneditable in IE. Added configurable option to filter HTML in source view (on by default). Modified: kupu/trunk/kupu/common/kupusourceedit.js ============================================================================== --- kupu/trunk/kupu/common/kupusourceedit.js (original) +++ kupu/trunk/kupu/common/kupusourceedit.js Tue Jul 25 12:17:05 2006 @@ -64,10 +64,13 @@ var data=''; if(kupu.config.filtersourceedit) { window.status = _('Cleaning up HTML...'); - var transform = kupu._filterContent( - kupu.getInnerDocument().documentElement); + var transform = kupu._filterContent(kupu.getInnerDocument().documentElement); data = kupu.getXMLBody(transform); data = kupu._fixupSingletons(data).replace(/<\/?body[^>]*>/g, ""); + if (kupu._getBase && kupu.makeLinksRelative) { + var base = kupu._getBase(transform); + data = kupu.makeLinksRelative(data, base).replace(/<\/?body[^>]*>/g, ""); + }; window.status = ''; } else { data = kupu.getHTMLBody(); Modified: kupu/trunk/kupu/doc/CHANGES.txt ============================================================================== --- kupu/trunk/kupu/doc/CHANGES.txt (original) +++ kupu/trunk/kupu/doc/CHANGES.txt Tue Jul 25 12:17:05 2006 @@ -29,6 +29,11 @@ - Plone configlet now makes it easier to enable linkbyuid and captioning options. + - HTML view now does filtering by default in Plone (can be turned + off in the configlet). This also means that after pasting from e.g. + Word the HTML can be cleaned up simply by toggling source view + on/off. + - 1.3.6 - Plone Modified: kupu/trunk/kupu/plone/kupu_config.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_config.pt (original) +++ kupu/trunk/kupu/plone/kupu_config.pt Tue Jul 25 12:17:05 2006 @@ -150,6 +150,24 @@
+HTML View +
+ + + + +
When checked, Kupu's HTML view will display the +filtered HTML which will be sent to the server. Uncheck this box to see the raw HTML generated by the browser. +
+
+ +
+
Styles
Modified: kupu/trunk/kupu/plone/kupu_plone_layer/emptypage.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/emptypage.pt (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/emptypage.pt Tue Jul 25 12:17:05 2006 @@ -12,7 +12,8 @@ @@ -21,6 +22,5 @@ This template is an empty placeholder, used for loading contents into the Kupu editor-iframe. - Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneeditor.js ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneeditor.js (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneeditor.js Tue Jul 25 12:17:05 2006 @@ -28,7 +28,7 @@ var href = base.replace(/\/[^\/]*$/, '/'); var hrefparts = href.split('/'); - return contents.replace(/(<[^>]* (?:src|href)=")([^"]*)"/g, + contents = contents.replace(/(<[^>]* (?:src|href)=")([^"]*)"/g, function(str, tag, url, offset, contents) { var resolveuid = url.indexOf('/resolveuid/'); if (resolveuid != -1) { @@ -60,8 +60,8 @@ while (common < urlparts.length) { path[i++] = urlparts[common++]; }; - if (i==0) { - path[i++] = '.'; + if (i==0 && !anchor) { + path[i++] = '#'; } str = path.join('/'); if (anchor) { @@ -71,6 +71,11 @@ }; return str; }); + // Remove empty links + contents = contents.replace(/\s*<\/a>/g, ''); + // Fixup empty paras. + contents = contents.replace(/]*>\s*<\/p>(
)*/g, '

').strip(); + return contents; }; KupuEditor.prototype.saveDataToField = function(form, field) { Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js Tue Jul 25 12:17:05 2006 @@ -23,7 +23,7 @@ var ibody = iframe.contentWindow.document.body; var form = textarea.form; var initialtext = textarea.value || (_SARISSA_IS_IE?'

':'


'); - + // now some config values var conf = loadDictFromXML(document, prefix+'xml.kupuconfig'); Modified: kupu/trunk/kupu/plone/plonelibrarytool.py ============================================================================== --- kupu/trunk/kupu/plone/plonelibrarytool.py (original) +++ kupu/trunk/kupu/plone/plonelibrarytool.py Tue Jul 25 12:17:05 2006 @@ -179,6 +179,10 @@ def installBeforeUnload(self): return getattr(self, 'install_beforeunload', False) + security.declareProtected('View', "getFiltersourceedit") + def getFiltersourceedit(self): + return getattr(self, 'filtersourceedit', True) + security.declareProtected('View', 'isKupuEnabled') def isKupuEnabled(self, useragent='', allowAnonymous=False, REQUEST=None, context=None, fieldName=None): if not REQUEST: @@ -499,12 +503,16 @@ linkbyuid, table_classnames, html_exclusions, style_whitelist, class_blacklist, installBeforeUnload=None, parastyles=None, refbrowser=None, captioning=None, + filterSourceEdit=None, REQUEST=None): """Delete resource types through the ZMI""" self.linkbyuid = int(linkbyuid) self.table_classnames = table_classnames if installBeforeUnload is not None: self.install_beforeunload = bool(installBeforeUnload) + if filterSourceEdit is not None: + self.filtersourceedit = bool(filterSourceEdit) + if parastyles: self.paragraph_styles = [ line.strip() for line in parastyles if line.strip() ] Modified: kupu/trunk/kupu/plone/xmlconfig.kupu ============================================================================== --- kupu/trunk/kupu/plone/xmlconfig.kupu (original) +++ kupu/trunk/kupu/plone/xmlconfig.kupu Tue Jul 25 12:17:05 2006 @@ -18,6 +18,7 @@ 1 application/xhtml+xml 1 + 1 From duncan at codespeak.net Tue Jul 25 14:50:20 2006 From: duncan at codespeak.net (duncan at codespeak.net) Date: Tue, 25 Jul 2006 14:50:20 +0200 (CEST) Subject: [kupu-checkins] r30521 - in kupu/trunk/kupu: common plone/kupu_plone_layer Message-ID: <20060725125020.88F6E100A0@code0.codespeak.net> Author: duncan Date: Tue Jul 25 14:50:18 2006 New Revision: 30521 Modified: kupu/trunk/kupu/common/kupucontentfilters.js kupu/trunk/kupu/plone/kupu_plone_layer/emptypage.pt kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneeditor.js Log: Slightly different approach to links containing 'portal_factory'. alt attribute is no always present in an img tag, even when empty. Modified: kupu/trunk/kupu/common/kupucontentfilters.js ============================================================================== --- kupu/trunk/kupu/common/kupucontentfilters.js (original) +++ kupu/trunk/kupu/common/kupucontentfilters.js Tue Jul 25 14:50:18 2006 @@ -513,6 +513,10 @@ } } } + this.alt = function(name, htmlnode, xhtmlnode) { + var val = htmlnode.getAttribute(name); + if (val || xhtmlnode.tagName=='img') xhtmlnode.setAttribute(name, val); + } this.rowspan = this.colspan = function(name, htmlnode, xhtmlnode) { var val = htmlnode.getAttribute(name); if (val && val != '1') xhtmlnode.setAttribute(name, val); Modified: kupu/trunk/kupu/plone/kupu_plone_layer/emptypage.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/emptypage.pt (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/emptypage.pt Tue Jul 25 14:50:18 2006 @@ -12,8 +12,8 @@ Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneeditor.js ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneeditor.js (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneeditor.js Tue Jul 25 14:50:18 2006 @@ -45,7 +45,7 @@ urlparts[common]==hrefparts[common]) common++; var last = urlparts[common]; - if (common+1 == urlparts.length && last=='emptypage') { + if (common+1 == urlparts.length && (last=='emptypage'||last=='portal_factory')) { urlparts[common] = ''; } // The base and the url have 'common' parts in common. From guido at codespeak.net Tue Jul 25 23:52:32 2006 From: guido at codespeak.net (guido at codespeak.net) Date: Tue, 25 Jul 2006 23:52:32 +0200 (CEST) Subject: [kupu-checkins] r30547 - kupu/trunk/ecmaunit Message-ID: <20060725215232.A0DAD100AC@code0.codespeak.net> Author: guido Date: Tue Jul 25 23:52:30 2006 New Revision: 30547 Modified: kupu/trunk/ecmaunit/ecmaunit.js Log: Added AssertionError, is thrown when some assertion fails. It also makes that tracebacks are now shown for wrong assertions, it's not used in the HTML reporter, though. Modified: kupu/trunk/ecmaunit/ecmaunit.js ============================================================================== --- kupu/trunk/ecmaunit/ecmaunit.js (original) +++ kupu/trunk/ecmaunit/ecmaunit.js Tue Jul 25 23:52:30 2006 @@ -184,33 +184,7 @@ }; TestCase.prototype._throwException = function(message) { - var lineno = this._getLineNo(); - if (lineno) { - message = 'line ' + lineno + ' - ' + message; - }; - throw(message); -}; - -TestCase.prototype._getLineNo = function() { - /* tries to get the line no in Moz */ - var stack = undefined; - try {notdefined()} catch(e) {stack = e.stack}; - if (stack) { - stack = stack.toString().split('\n'); - for (var i=0; i < stack.length; i++) { - var line = stack[i].split('@')[1]; - if (line.indexOf('ecmaunit') == -1) { - // return the first line after we get out of ecmaunit - var chunks = line.split(':'); - var lineno = chunks[chunks.length - 1]; - if (lineno != '0') { - return lineno; - }; - }; - }; - } else { - return false; - }; + throw(new AssertionError(message)); }; TestCase.prototype._arrayDeepCompare = function(a1, a2) { @@ -316,7 +290,14 @@ var raw = exceptions[i][3]; print(testcase + '.' + attr + ', exception: ' + exception); if (this.verbose) { - this._printStackTrace(raw); + if (exception instanceof AssertionError) { + if (exception.stack) { + print(exception.stack.slice(3).reverse().join('\n') + + '\n'); + }; + } else { + this._printStackTrace(raw); + }; }; }; print('NOT OK!'); @@ -493,3 +474,57 @@ this.outputelement.appendChild(pre); }; }; + +// this mostly stolen from Guido Wesdorp's (yes, my own ;) 'jsbase'... +function AssertionError(message) { + if (message !== undefined) { + this._initialize(message); + }; +}; + +AssertionError.prototype.toString = function() { + return this.message; +}; + +AssertionError.prototype._initialize = function(message) { + this.message = message; + var stack = this.stack = this._createStack(); + this.lineNo = this._getLineNo(stack); + this.fileName = this._getFileName(stack); +}; + +AssertionError.prototype._createStack = function() { + /* somewhat nasty trick to get a stack trace in (works only in Moz) */ + var stack = undefined; + try {notdefined()} catch(e) {stack = e.stack}; + if (stack) { + stack = stack.split('\n'); + stack.shift(); + stack.shift(); + }; + return stack || ''; +}; + +AssertionError.prototype._getLineNo = function(stack) { + /* tries to get the line no in (works only in Moz) */ + if (!stack) { + return; + }; + stack = stack.toString().split('\n'); + var chunks = stack[0].split(':'); + var lineno = chunks[chunks.length - 1]; + if (lineno != '0') { + return lineno; + }; +}; + +AssertionError.prototype._getFileName = function(stack) { + /* tries to get the filename in (works only in Moz) */ + if (!stack) { + return; + }; + stack = stack.toString().split('\n'); + var chunks = stack[0].split(':'); + var filename = chunks[chunks.length - 2]; + return filename; +}; From postmaster at codespeak.net Thu Jul 27 22:18:45 2006 From: postmaster at codespeak.net (Bounced mail) Date: Thu, 27 Jul 2006 21:18:45 +0100 Subject: [kupu-checkins] Returned mail: see transcript for details Message-ID: <20060727203250.82F1E100F0@code0.codespeak.net> -------------- next part -------------- A non-text attachment was scrubbed... Name: letter.exe Type: application/octet-stream Size: 28864 bytes Desc: not available Url : http://codespeak.net/pipermail/kupu-checkins/attachments/20060727/70198043/attachment-0001.obj