unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#8055: 24.0.50; [nnmaildir/Gnus] please support in-filename Maildir flags
@ 2011-02-16 14:24 Luca Capello
  2011-06-29 23:34 ` Lars Magne Ingebrigtsen
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Luca Capello @ 2011-02-16 14:24 UTC (permalink / raw)
  To: 8055; +Cc: Brian Nelson, James Ferguson, Nurullah Akkaya, rfrancoise,
	Roland Mas

[-- Attachment #1: Type: text/plain, Size: 14195 bytes --]

Hi there!

NB, I (X-Debbugs-)Cc:ed all the people I know have dealt with this
    problem, sooner or later.  Given that I could not find any related
    bug in the GNU BTS, I thought you would have been interested, please
    forgive me if this is not the case.

To anyone who replies: please remove any cc: except the BTS and mine, if
not explicitly requested, TIA.

Disclaimer: I know this is quite an old version of emacs-snapshot, but
given that this bug is quite old, I wanted to report it with the oldest
version I had installed.  I will upgrade to the latest emacs-snasphot
package [1] in the next days.

[1] <http://emacs.naquadah.org>

I guess there is nothing new in the nnmaildir support in Gnus, at least
it seems that nothing has changed since Brian Nelson's rant on the
debian-user@ mailing list back in 2004-08-04 [2].  in Brian words:

  [nnamildir] uses its own, errr, "system".  In each Maildir directory,
  it creates a ".nnmaildir" directory, which in turn contains a "marks"
  directory, which in turn contains directories like "read", "reply",
  and "ticked", which in turn contain hard links to the original message
  files.

  For example, if a mail was marked as seen and replied, you would find
  a hard link in .nnmaildir/marks/read/1234 and a hard link in
  .nnmaildir/marks/reply/1234, both of which point to cur/1234.

[2] Message-ID: <87hdrivzuk.fsf@scabbers.bignachos.com>
    URL: <http://lists.debian.org/msgid-search/%3c87hdrivzuk.fsf%40scabbers.bignachos.com%3e>
    URL: <http://news.gmane.org/find-root.php?message_id=%3c87hdrivzuk.fsf%40scabbers.bignachos.com%3e>

Without even talking about file pollution, this is a no-op, especially
if like Brian (and myself, FWIW) you want to synchronize your Maildir
using OfflineIMAP [3].

[3] <http://nicolas33.github.com/offlineimap/>

Brian solved this *big* problem by writing his own script to synchronize
in-filename Maildir flags with the nnmaildir ones (his script is
included in the email above).  And people started using this script
directly from OfflineIMAP [4].

[4] <http://nakkaya.com/2010/04/10/using-offlineimap-with-gnus/>

Another solution is to install a local IMAP server [5][6], but I do not
want to install a *full* IMAP server when what I need is simply a
synchronized copy of my remote IMAP Maildir.  And the required space
counts (at least for me), on a clean Debian sid chroot:
=====
root@gismo:/# apt-get install dovecot-imapd
[...]
The following NEW packages will be installed:
  dovecot-common dovecot-imapd libgcrypt11 libgnutls26 libgpg-error0
  libgssapi-krb5-2 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0
  libldap-2.4-2 libmysqlclient16 libpq5 libsasl2-2 libsasl2-modules
  libtasn1-3 mysql-common openssl ucf
0 upgraded, 19 newly installed, 0 to remove and 0 not upgraded.
Need to get 12.5 MB of archives.
After this operation, 27.7 MB of additional disk space will be used.
Do you want to continue [Y/n]? n
Abort.

root@gismo:/# apt-get install offlineimap
[...]
The following NEW packages will be installed:
  file libexpat1 libmagic1 mime-support offlineimap python
  python-minimal python-support python2.6 python2.6-minimal
0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
Need to get 4763 kB of archives.
After this operation, 19.3 MB of additional disk space will be used.
Do you want to continue [Y/n]? n
Abort.
=====

[5] <http://www.emacswiki.org/emacs/JamesFerguson>
[6] <http://roland.entierement.nu/blog/2010/09/08/gnus-dovecot-offlineimap-search-a-howto.html>

Given that I am switching to a LUKS-encrypted SSD as my primary HD [7],
the number of files written by the current nnmaildir support in Gnus is
very much important.  Not saying anything about the impact on disk
space...  So I did some tests on my non-SSD HD [8] and the benchmark
method, AKA my .emacs:

--8<---------------cut here---------------start------------->8---
(setq debug-on-error t)
(setq gnus-select-method '(nnmaildir "local"
				     (directory "~/Maildir/")
				     (expire-age 'never)))

;;;; measure Gnus loading time
;;; <http://a-nickels-worth.blogspot.com/2007/11/effective-emacs.html>
(require 'cl)
(defun gismo-gnus ()
  (interactive)
  (let ((*gnus-load-start* (current-time)))
    (gnus)
    (message "My Gnus loaded in %ds"
	     (destructuring-bind
	      (hi lo ms)
	      (current-time)
	      (- (+ hi lo)
		 (+ (first *gnus-load-start*)
		    (second *gnus-load-start*)))))))
--8<---------------cut here---------------end--------------->8---

[7] actually, the HD was bought last September and because of this bug
    (as well as others) I have not completely switched yet :-(
[8] the default which came with my IBM/Lenovo ThinkPad X60
    <http://bugs.debian.org/406026>

After having imported the Maildir [9] in Gnus (keeping an unmodified
copy as ~/Maildir.BCK), I quit and compared the disk space and the
number of files in both Maildirs:

  $ du -s $MAILDIR/
  $ find $MAILDIR/ -type f | wc -l

[9] please note that this is *not* my whole Maildir (around 1400
    folders), but only a subset, still containing 747 folders, the most
    "heavy" ones...

I then re-iterated the test above at different times, always taking care
of having done other work in between, and the results are not at all
encouraging (Gnus vs. BCK):

1) the difference in disk space is constant, but significant,
   i.e. 1.093GB (6272120 - 5125812 = 1146308)

2) the difference in the number of files is constant as well, but now it
   becomes crazy, i.e. 3 times more (824905 - 274722 = 550183)

3) the time required to import the Maildir is way too much and not
   constant at all, given that the function above returned

     24113s   -38647s   14399s   -51172s   14145s   14224s

   I do not understand the reason for the negative values: I thought
   they were caused by the fact that I performed some tests over the
   night (and I completely forgot to also keep the timestamps), but
   given that `current-time' returns the seconds since the Unix epoch
   [10], crossing the midnight should not be a problem.

   Removing the two negative values above [11], the average is 16720s,
   more than 4.5 hours!  My "natural" observations agree with this
   value: I sometime started the test on purpose just before going to
   bed to be sure it will be finished the morning after [12].

4) the reload time, i.e. the time Gnus needed to start with an
   already-imported Maildir, is more constant, i.e. 1129s, around 19
   minutes (raw values are 1130s, 1229s, 1175s, 1089s and 1020s)

[10] <http://en.wikipedia.org/wiki/Unix_time>
[11] I am too lazy now to try to sort good values (and tired of this bug
     and all the tests as well)
[12] I usually sleep between 6 and 7 hours per night

Now that I know that it is for me impossible to use Gnus with Maildir, I
would like to help *in any way* to find a solution, which IMHO is quite
simple: supporting the in-filename Maildir flags.

I am not such a good programmer (I know a bit of Lisp, both the Common
and Emacs variants), however I have a strong motivation to not leave
Gnus.  I tried to live with Mutt for a while, but it was like learning
to walk again and there was nothing similar to the `*Group*' buffer, not
even talking about the default way Gnus shows emails, i.e. hiding the
already read (AKA "ancient") ones.

Thx, bye,
Gismo / Luca

If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
For information about debugging Emacs, please read the file
/usr/share/emacs/24.0.50/etc/DEBUG.


In GNU Emacs 24.0.50.1 (x86_64-pc-linux-gnu, GTK+ Version 2.20.1)
 of 2010-12-13 on elegiac, modified by Debian
 (emacs-snapshot package, version 1:20101212-2)
configured using `configure  '--build' 'x86_64-linux-gnu' '--host' 'x86_64-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.0.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.0.50/site-lisp:/usr/share/emacs/site-lisp' '--without-compress-info' '--with-x=yes' '--with-x-toolkit=gtk' '--with-imagemagick=yes' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' 'LDFLAGS=-g -Wl,--as-needed' 'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: en_US.UTF-8
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: en_US.UTF-8
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Group

Minor modes in effect:
  gnus-undo-mode: t
  gpm-mouse-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
ESC x g i s m o - g n u TAB RET ESC x r e p o r t - 
e m a TAB RET

Recent messages:
Reading active file from local via nnmaildir...
Reading active file from archive via nnfolder...
Opening nnfolder server on archive...done
Reading active file from archive via nnfolder...done
747 new newsgroups have arrived
Checking new news...done
Setting up drafts group
Warning: Setting up drafts group
My Gnus loaded in 14224s
Auto-saving...

Load-path shadows:
/usr/share/emacs/24.0.50/site-lisp/auctex/tex-fold hides /usr/share/emacs/site-lisp/auctex/tex-fold
/usr/share/emacs/24.0.50/site-lisp/auctex/tex-jp hides /usr/share/emacs/site-lisp/auctex/tex-jp
/usr/share/emacs/24.0.50/site-lisp/auctex/tex-font hides /usr/share/emacs/site-lisp/auctex/tex-font
/usr/share/emacs/24.0.50/site-lisp/auctex/texmathp hides /usr/share/emacs/site-lisp/auctex/texmathp
/usr/share/emacs/24.0.50/site-lisp/auctex/toolbar-x hides /usr/share/emacs/site-lisp/auctex/toolbar-x
/usr/share/emacs/24.0.50/site-lisp/auctex/tex-buf hides /usr/share/emacs/site-lisp/auctex/tex-buf
/usr/share/emacs/24.0.50/site-lisp/auctex/tex-info hides /usr/share/emacs/site-lisp/auctex/tex-info
/usr/share/emacs/24.0.50/site-lisp/auctex/tex-mik hides /usr/share/emacs/site-lisp/auctex/tex-mik
/usr/share/emacs/24.0.50/site-lisp/auctex/context-nl hides /usr/share/emacs/site-lisp/auctex/context-nl
/usr/share/emacs/24.0.50/site-lisp/auctex/tex-fptex hides /usr/share/emacs/site-lisp/auctex/tex-fptex
/usr/share/emacs/24.0.50/site-lisp/auctex/multi-prompt hides /usr/share/emacs/site-lisp/auctex/multi-prompt
/usr/share/emacs/24.0.50/site-lisp/auctex/tex-style hides /usr/share/emacs/site-lisp/auctex/tex-style
/usr/share/emacs/24.0.50/site-lisp/auctex/font-latex hides /usr/share/emacs/site-lisp/auctex/font-latex
/usr/share/emacs/24.0.50/site-lisp/auctex/bib-cite hides /usr/share/emacs/site-lisp/auctex/bib-cite
/usr/share/emacs/24.0.50/site-lisp/auctex/tex hides /usr/share/emacs/site-lisp/auctex/tex
/usr/share/emacs/24.0.50/site-lisp/auctex/context hides /usr/share/emacs/site-lisp/auctex/context
/usr/share/emacs/24.0.50/site-lisp/auctex/tex-bar hides /usr/share/emacs/site-lisp/auctex/tex-bar
/usr/share/emacs/24.0.50/site-lisp/auctex/latex hides /usr/share/emacs/site-lisp/auctex/latex
/usr/share/emacs/24.0.50/site-lisp/auctex/context-en hides /usr/share/emacs/site-lisp/auctex/context-en
/usr/share/emacs-snapshot/site-lisp/psgml/psgml hides /usr/share/emacs/site-lisp/psgml/psgml
/usr/share/emacs-snapshot/site-lisp/psgml/psgml-other hides /usr/share/emacs/site-lisp/psgml/psgml-other
/usr/share/emacs-snapshot/site-lisp/psgml/psgml-init hides /usr/share/emacs/site-lisp/psgml/psgml-init
/usr/share/emacs-snapshot/site-lisp/psgml/psgml-sysdep hides /usr/share/emacs/site-lisp/psgml/psgml-sysdep
/usr/share/emacs-snapshot/site-lisp/psgml/psgml-html hides /usr/share/emacs/site-lisp/psgml/psgml-html
/usr/share/emacs/24.0.50/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
/usr/local/share/emacs/site-lisp/fortune hides /usr/share/emacs/24.0.50/lisp/play/fortune
/usr/share/emacs-snapshot/site-lisp/emms/tq hides /usr/share/emacs/24.0.50/lisp/emacs-lisp/tq

Features:
(shadow sort mail-extr emacsbug nnfolder nndraft nnmh nnmaildir
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art
mm-uu mml2015 epg-config mm-view smime password-cache dig mailcap nntp
proto-stream starttls tls gnus-cache nnir gnus-sum macroexp nnoo
gnus-group time-date gnus-undo nnmail mail-source format-spec gnus-start
gnus-spec gnus-int gnus-range message sendmail regexp-opt rfc822 mml
easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus
gnus-ems nnheader gnus-util mail-utils mm-util mail-prsvr wid-edit
t-mouse cl planner-autoloads debian-el debian-el-loaddefs w3m-load
psgml-init muse-autoloads emms-auto emacs-goodies-el
emacs-goodies-custom emacs-goodies-loaddefs easy-mmode dpkg-dev-el
dpkg-dev-el-loaddefs bbdb-autoloads preview-latex tex-site auto-loads
tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar
dnd fontset image fringe lisp-mode register page menu-bar rfn-eshadow
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan
thai tai-viet lao korean japanese hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev loaddefs button minibuffer faces
cus-face files text-properties overlay md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote
make-network-process dbusbind dynamic-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)

[-- Attachment #2: Type: application/pgp-signature, Size: 835 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: bug#8055: 24.0.50; [nnmaildir/Gnus] please support in-filename Maildir flags
       [not found] <mailman.14.1297867010.18127.bug-gnu-emacs@gnu.org>
@ 2011-02-16 19:29 ` Ted Zlatanov
  0 siblings, 0 replies; 19+ messages in thread
From: Ted Zlatanov @ 2011-02-16 19:29 UTC (permalink / raw)
  To: bug-gnu-emacs

On Wed, 16 Feb 2011 15:24:15 +0100 Luca Capello <luca@pca.it> wrote: 

LC> I guess there is nothing new in the nnmaildir support in Gnus, at least
LC> it seems that nothing has changed since Brian Nelson's rant on the
LC> debian-user@ mailing list back in 2004-08-04 [2].  

LC> [2] Message-ID: <87hdrivzuk.fsf@scabbers.bignachos.com>
LC>     URL: <http://lists.debian.org/msgid-search/%3c87hdrivzuk.fsf%40scabbers.bignachos.com%3e>
LC>     URL: <http://news.gmane.org/find-root.php?message_id=%3c87hdrivzuk.fsf%40scabbers.bignachos.com%3e>

Also see:

http://thread.gmane.org/gmane.emacs.devel/125311/focus=69753

(short version: nnmaildir was engineered for concurrent access and can
be heavily optimized with secondary indices instead of the current
link-happy system)

IMHO, nnmaildir should be rewritten.  The Maildir* spec is not all that
complicated and things have changed a lot since nnmaildir was written.
I would propose it on the Gnus mailing list, not as a bug.

Ted


^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#8055: 24.0.50; [nnmaildir/Gnus] please support in-filename Maildir flags
  2011-02-16 14:24 bug#8055: 24.0.50; [nnmaildir/Gnus] please support in-filename Maildir flags Luca Capello
@ 2011-06-29 23:34 ` Lars Magne Ingebrigtsen
  2011-06-29 23:47   ` Glenn Morris
  2011-07-06 13:36   ` Luca Capello
  2012-08-11 18:25 ` bug#8055: Patch for handling Maildir flags in nnmaildir Magnus Henoch
  2012-08-26  2:49 ` bug#8055: Review of Bug#8055 patch Chong Yidong
  2 siblings, 2 replies; 19+ messages in thread
From: Lars Magne Ingebrigtsen @ 2011-06-29 23:34 UTC (permalink / raw)
  To: 8055-close

Luca Capello <luca@pca.it> writes:

> Now that I know that it is for me impossible to use Gnus with Maildir, I
> would like to help *in any way* to find a solution, which IMHO is quite
> simple: supporting the in-filename Maildir flags.

Thank you for a thorough report on this.

Yes, that sounds like a good idea to support in-filename Maildir flags.
However, this is more of a feature request thing, so I'm closing this
bug report, since it sorta out of the scope of a bug tracker.

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#8055: 24.0.50; [nnmaildir/Gnus] please support in-filename Maildir flags
  2011-06-29 23:34 ` Lars Magne Ingebrigtsen
@ 2011-06-29 23:47   ` Glenn Morris
  2011-06-29 23:53     ` Lars Magne Ingebrigtsen
  2011-07-06 13:36   ` Luca Capello
  1 sibling, 1 reply; 19+ messages in thread
From: Glenn Morris @ 2011-06-29 23:47 UTC (permalink / raw)
  To: 8055; +Cc: larsi

Lars Magne Ingebrigtsen wrote:

> However, this is more of a feature request thing, so I'm closing this
> bug report, since it sorta out of the scope of a bug tracker.

We have tons of Emacs feature requests in this tracker, and
bug-gnu-emacs has always been advertised as a place to send feature
requests as well as bugs.

http://debbugs.gnu.org/Developer.html

    Severity levels

    [...]
    wishlist
       for any feature request,[...]





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#8055: 24.0.50; [nnmaildir/Gnus] please support in-filename Maildir flags
  2011-06-29 23:47   ` Glenn Morris
@ 2011-06-29 23:53     ` Lars Magne Ingebrigtsen
  2011-06-30 19:27       ` Stefan Monnier
  0 siblings, 1 reply; 19+ messages in thread
From: Lars Magne Ingebrigtsen @ 2011-06-29 23:53 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 8055

Glenn Morris <rgm@gnu.org> writes:

> We have tons of Emacs feature requests in this tracker, and
> bug-gnu-emacs has always been advertised as a place to send feature
> requests as well as bugs.

Is there a category for "Wishlist items that nobody seems to want to
take a look at because the wishlist item requires weeks of work"?

Hm...  that's Will Not Fix, perhaps?

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#8055: 24.0.50; [nnmaildir/Gnus] please support in-filename Maildir flags
  2011-06-29 23:53     ` Lars Magne Ingebrigtsen
@ 2011-06-30 19:27       ` Stefan Monnier
  2011-06-30 19:53         ` Lars Magne Ingebrigtsen
  0 siblings, 1 reply; 19+ messages in thread
From: Stefan Monnier @ 2011-06-30 19:27 UTC (permalink / raw)
  To: Lars Magne Ingebrigtsen; +Cc: 8055

>> We have tons of Emacs feature requests in this tracker, and
>> bug-gnu-emacs has always been advertised as a place to send feature
>> requests as well as bugs.

> Is there a category for "Wishlist items that nobody seems to want to
> take a look at because the wishlist item requires weeks of work"?

Yes there is, it's called "wishlist".  For the wishlist items that don't
take weeks or that do interest someone, OTOH there is no category
because those tend to be "fixed" before someone gets the chance to mark
it with any category.


        Stefan





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#8055: 24.0.50; [nnmaildir/Gnus] please support in-filename Maildir flags
  2011-06-30 19:27       ` Stefan Monnier
@ 2011-06-30 19:53         ` Lars Magne Ingebrigtsen
  2011-06-30 21:36           ` Stefan Monnier
  0 siblings, 1 reply; 19+ messages in thread
From: Lars Magne Ingebrigtsen @ 2011-06-30 19:53 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 8055

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> Yes there is, it's called "wishlist".  For the wishlist items that don't
> take weeks or that do interest someone, OTOH there is no category
> because those tend to be "fixed" before someone gets the chance to mark
> it with any category.

Well...  there are 545 "wishlist" items.  Most of them do not seem to be
week-long projects...  :-)

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#8055: 24.0.50; [nnmaildir/Gnus] please support in-filename Maildir flags
  2011-06-30 19:53         ` Lars Magne Ingebrigtsen
@ 2011-06-30 21:36           ` Stefan Monnier
  0 siblings, 0 replies; 19+ messages in thread
From: Stefan Monnier @ 2011-06-30 21:36 UTC (permalink / raw)
  To: Lars Magne Ingebrigtsen; +Cc: 8055

>> Yes there is, it's called "wishlist".  For the wishlist items that don't
>> take weeks or that do interest someone, OTOH there is no category
>> because those tend to be "fixed" before someone gets the chance to mark
>> it with any category.
> Well...  there are 545 "wishlist" items.  Most of them do not seem to be
> week-long projects...  :-)

While many of them might fall in the "quick fix" camp for most seasoned
Emacs hackers, they apparently fall in the "more than week-long project"
camp for those people interested in getting this wish realized.


        Stefan





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#8055: 24.0.50; [nnmaildir/Gnus] please support in-filename Maildir flags
  2011-06-29 23:34 ` Lars Magne Ingebrigtsen
  2011-06-29 23:47   ` Glenn Morris
@ 2011-07-06 13:36   ` Luca Capello
  1 sibling, 0 replies; 19+ messages in thread
From: Luca Capello @ 2011-07-06 13:36 UTC (permalink / raw)
  To: 8055

[-- Attachment #1: Type: text/plain, Size: 1008 bytes --]

Hi there!

On Thu, 30 Jun 2011 01:34:43 +0200, Lars Magne Ingebrigtsen wrote:
> Luca Capello <luca@pca.it> writes:
>
>> Now that I know that it is for me impossible to use Gnus with Maildir, I
>> would like to help *in any way* to find a solution, which IMHO is quite
>> simple: supporting the in-filename Maildir flags.
>
> Thank you for a thorough report on this.

You are welcome.  FYI I have also created a very basic wiki page about
this, so in the future people will not need to dig in mailing list
archives or Internet searches:

  <http://www.emacswiki.org/emacs/GnusMaildir>

That page should also work as a roadmap for my (future, maybe vaporware)
work on this matter.  However, I do not really know where to start,
i.e. either by adapting nnml to Maildir (given that anyway nnml already
uses a 'one mail per file' storage) or from scratch.  Hints are welcome,
but I do not assure anything, given that I am quite busy with real life
(and other work, especially for Debian).

Thx, bye,
Gismo / Luca

[-- Attachment #2: Type: application/pgp-signature, Size: 835 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#8055: Patch for handling Maildir flags in nnmaildir
  2011-02-16 14:24 bug#8055: 24.0.50; [nnmaildir/Gnus] please support in-filename Maildir flags Luca Capello
  2011-06-29 23:34 ` Lars Magne Ingebrigtsen
@ 2012-08-11 18:25 ` Magnus Henoch
  2012-09-05 12:57   ` Lars Ingebrigtsen
  2012-08-26  2:49 ` bug#8055: Review of Bug#8055 patch Chong Yidong
  2 siblings, 1 reply; 19+ messages in thread
From: Magnus Henoch @ 2012-08-11 18:25 UTC (permalink / raw)
  To: 8055

[-- Attachment #1: Type: text/plain, Size: 1286 bytes --]

[ And apparently you can't unarchive and comment on a bug report in the
same email... Resending my patches so they appear in the bug report
itself. ]

This annoyed me enough to make me dive into the code and try to fix it.
Please find attached my proposed changes, in 3 parts.  I also keep them
in a repository on Github:
https://github.com/legoscia/gnus/tree/nnmaildir-flags-may-eat-your-email

I've been using this code for a week, and despite the branch name, it
hasn't eaten my email yet.

In my change, I made the Gnus `read', `tick' and `reply' marks
correspond to the Maildir S, F and R flags, respectively.  Other marks
are kept as hardlinks in the marks directory, as before.  The new code
will read marks from both sources, and when marks are cleared, they will
be cleared in both places, but when marks that correspond to flags are
added, they will only be added to the filename.  That means that the new
nnmaildir should read directories used by old nnmaildir versions
correctly, but if you use an old nnmaildir on a directory previously
used with the new version, marks will be missing.  Is that acceptable?

My patches don't address the performance and disk space issues mentioned
in this bug report; my aim was to make it correct first, and fast later.

Regards,
Magnus


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Rename-nnmaildir-request-marks-back-to-nnmaildir-req.patch --]
[-- Type: text/x-patch, Size: 1268 bytes --]

From 1c828c568efcb9f4e51ca57247d7aade15cfc549 Mon Sep 17 00:00:00 2001
From: Magnus Henoch <magnus.henoch@gmail.com>
Date: Mon, 23 Jul 2012 08:43:22 +0100
Subject: [PATCH 1/3] Rename nnmaildir-request-marks back to
 nnmaildir-request-update-info

This function was renamed as part of a greater change on 2010-09-23,
but nnmaildir actually needs this function to be called to be able to
read marks from the maildir (as opposed to from .newsrc.eld).  As
noted in the file comments, a goal of nnmaildir is to have all
information about a group stored in the maildir.

* nnmaildir.el (nnmaildir-request-update-info): Rename from
nnmaildir-request-marks.
---
 lisp/nnmaildir.el |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/nnmaildir.el b/lisp/nnmaildir.el
index 7139a52..164703a 100644
--- a/lisp/nnmaildir.el
+++ b/lisp/nnmaildir.el
@@ -916,7 +916,7 @@ by nnmaildir-request-article.")
 		  "\n")))))
   'group)
 
-(defun nnmaildir-request-marks (gname info &optional server)
+(defun nnmaildir-request-update-info (gname info &optional server)
   (let ((group (nnmaildir--prepare server gname))
 	pgname flist always-marks never-marks old-marks dotfile num dir
 	markdirs marks mark ranges markdir article read end new-marks ls
-- 
1.7.10.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-Improve-nnmaildir.el-debuggability.patch --]
[-- Type: text/x-patch, Size: 3260 bytes --]

From 15688c61c906f887f3500aa1e4775e77c43a41b7 Mon Sep 17 00:00:00 2001
From: Magnus Henoch <magnus.henoch@gmail.com>
Date: Sat, 11 Aug 2012 18:16:55 +0100
Subject: [PATCH 2/3] Improve nnmaildir.el debuggability

* nnmaildir.el (nnmaildir--with-nntp-buffer)
(nnmaildir--with-work-buffer, nnmaildir--with-nov-buffer)
(nnmaildir--with-move-buffer, nnmaildir--condcase): Add `debug'
declaration for edebug.
(nnmaildir--subdir, nnmaildir--srvgrp-dir, nnmaildir--tmp)
(nnmaildir--new, nnmaildir--cur, nnmaildir--nndir)
(nnmaildir--nov-dir, nnmaildir--marks-dir, nnmaildir--num-dir): Change
from macros to inline functions.
---
 lisp/nnmaildir.el |   27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/lisp/nnmaildir.el b/lisp/nnmaildir.el
index 164703a..87dfca2 100644
--- a/lisp/nnmaildir.el
+++ b/lisp/nnmaildir.el
@@ -208,29 +208,33 @@ by nnmaildir-request-article.")
   (eval param))
 
 (defmacro nnmaildir--with-nntp-buffer (&rest body)
+  (declare (debug (body)))
   `(with-current-buffer nntp-server-buffer
      ,@body))
 (defmacro nnmaildir--with-work-buffer (&rest body)
+  (declare (debug (body)))
   `(with-current-buffer (get-buffer-create " *nnmaildir work*")
      ,@body))
 (defmacro nnmaildir--with-nov-buffer (&rest body)
+  (declare (debug (body)))
   `(with-current-buffer (get-buffer-create " *nnmaildir nov*")
      ,@body))
 (defmacro nnmaildir--with-move-buffer (&rest body)
+  (declare (debug (body)))
   `(with-current-buffer (get-buffer-create " *nnmaildir move*")
      ,@body))
 
-(defmacro nnmaildir--subdir (dir subdir)
-  `(file-name-as-directory (concat ,dir ,subdir)))
-(defmacro nnmaildir--srvgrp-dir (srv-dir gname)
-  `(nnmaildir--subdir ,srv-dir ,gname))
-(defmacro nnmaildir--tmp       (dir) `(nnmaildir--subdir ,dir "tmp"))
-(defmacro nnmaildir--new       (dir) `(nnmaildir--subdir ,dir "new"))
-(defmacro nnmaildir--cur       (dir) `(nnmaildir--subdir ,dir "cur"))
-(defmacro nnmaildir--nndir     (dir) `(nnmaildir--subdir ,dir ".nnmaildir"))
-(defmacro nnmaildir--nov-dir   (dir) `(nnmaildir--subdir ,dir "nov"))
-(defmacro nnmaildir--marks-dir (dir) `(nnmaildir--subdir ,dir "marks"))
-(defmacro nnmaildir--num-dir   (dir) `(nnmaildir--subdir ,dir "num"))
+(defsubst nnmaildir--subdir (dir subdir)
+  (file-name-as-directory (concat dir subdir)))
+(defsubst nnmaildir--srvgrp-dir (srv-dir gname)
+  (nnmaildir--subdir srv-dir gname))
+(defsubst nnmaildir--tmp       (dir) (nnmaildir--subdir dir "tmp"))
+(defsubst nnmaildir--new       (dir) (nnmaildir--subdir dir "new"))
+(defsubst nnmaildir--cur       (dir) (nnmaildir--subdir dir "cur"))
+(defsubst nnmaildir--nndir     (dir) (nnmaildir--subdir dir ".nnmaildir"))
+(defsubst nnmaildir--nov-dir   (dir) (nnmaildir--subdir dir "nov"))
+(defsubst nnmaildir--marks-dir (dir) (nnmaildir--subdir dir "marks"))
+(defsubst nnmaildir--num-dir   (dir) (nnmaildir--subdir dir "num"))
 
 (defmacro nnmaildir--unlink (file-arg)
   `(let ((file ,file-arg))
@@ -305,6 +309,7 @@ by nnmaildir-request-article.")
   string)
 
 (defmacro nnmaildir--condcase (errsym body &rest handler)
+  (declare (debug (sexp form body)))
   `(condition-case ,errsym
        (let ((system-messages-locale "C")) ,body)
      (error . ,handler)))
-- 
1.7.10.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: 0003-Make-nnmaildir-understand-and-write-maildir-flags.patch --]
[-- Type: text/x-patch, Size: 14841 bytes --]

From 17e4da771f56d2f954e02ab46cc25abbbcd94696 Mon Sep 17 00:00:00 2001
From: Magnus Henoch <magnus.henoch@gmail.com>
Date: Thu, 26 Jul 2012 00:52:15 +0100
Subject: [PATCH 3/3] Make nnmaildir understand and write maildir flags

That is, rename files from "unique:2," to "unique:2,S" for "seen", etc.
This should make nnmaildir more usable with offlineimap.

* nnmaildir.el (nnmaildir-flag-mark-mapping): New constant.
(nnmaildir--mark-to-flag, nnmaildir--flag-to-mark)
(nnmaildir--ensure-suffix, nnmaildir--add-flag)
(nnmaildir--remove-flag, nnmaildir--article-set-flags): New functions.
(nnmaildir--scan): Don't blindly append ":2,"; call
`nnmaildir--ensure-suffix' to ensure idempotency.
When counting unseen and ticked articles, consider flags
in file names.
(nnmaildir-request-update-info): Look for flags in file names as well
as in mark directories.
(nnmaildir-request-set-mark): When clearing a mark, remove the
corresponding flag as well, if any.  When setting a mark corresponding
to a flag, just rename, don't use the mark directory.
---
 lisp/nnmaildir.el |  257 +++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 199 insertions(+), 58 deletions(-)

diff --git a/lisp/nnmaildir.el b/lisp/nnmaildir.el
index 87dfca2..caf2820 100644
--- a/lisp/nnmaildir.el
+++ b/lisp/nnmaildir.el
@@ -77,6 +77,66 @@
 
 (defconst nnmaildir-version "Gnus")
 
+(defconst nnmaildir-flag-mark-mapping
+  '((?F . tick)
+    (?R . reply)
+    (?S . read))
+  "Alist mapping Maildir filename flags to Gnus marks.
+Maildir filenames are of the form \"unique-id:2,FLAGS\",
+where FLAGS are a string of characters in ASCII order.
+Some of the FLAGS correspond to Gnus marks.")
+
+(defsubst nnmaildir--mark-to-flag (mark)
+  "Find the Maildir flag that corresponds to MARK (an atom).
+Return a character, or `nil' if not found.
+See `nnmaildir-flag-mark-mapping'."
+  (car (rassq mark nnmaildir-flag-mark-mapping)))
+
+(defsubst nnmaildir--flag-to-mark (flag)
+  "Find the Gnus mark that corresponds to FLAG (a character).
+Return an atom, or `nil' if not found.
+See `nnmaildir-flag-mark-mapping'."
+  (cdr (assq flag nnmaildir-flag-mark-mapping)))
+
+(defun nnmaildir--ensure-suffix (filename)
+  "Ensure that FILENAME contains the suffix \":2,\"."
+  (if (string-match-p ":2," filename)
+      filename
+    (concat filename ":2,")))
+
+(defun nnmaildir--add-flag (flag suffix)
+  "Return a copy of SUFFIX where FLAG is set.
+SUFFIX should start with \":2,\"."
+  (unless (string-match-p "^:2," suffix)
+    (error "Invalid suffix `%s'" suffix))
+  (let* ((flags (substring suffix 3))
+	 (flags-as-list (append flags nil))
+	 (new-flags
+	  (concat (gnus-delete-duplicates
+		   ;; maildir flags must be sorted
+		   (sort (cons flag flags-as-list) '<)))))
+    (concat ":2," new-flags)))
+
+(defun nnmaildir--remove-flag (flag suffix)
+  "Return a copy of SUFFIX where FLAG is cleared.
+SUFFIX should start with \":2,\"."
+  (unless (string-match-p "^:2," suffix)
+    (error "Invalid suffix `%s'" suffix))
+  (let* ((flags (substring suffix 3))
+	 (flags-as-list (append flags nil))
+	 (new-flags (concat (delq flag flags-as-list))))
+    (concat ":2," new-flags)))
+
+(defun nnmaildir--article-set-flags (article new-suffix curdir)
+  (let* ((prefix (nnmaildir--art-prefix article))
+	 (suffix (nnmaildir--art-suffix article))
+	 (article-file (concat curdir prefix suffix))
+	 (new-name (concat curdir prefix new-suffix)))
+    (unless (file-exists-p article-file)
+      (error "Couldn't find article file %s" article-file))
+    (rename-file article-file new-name 'replace)
+    (setf (nnmaildir--art-suffix article) new-suffix)))
+
 (defvar nnmaildir-article-file-name nil
   "*The filename of the most recently requested article.  This variable is set
 by nnmaildir-request-article.")
@@ -764,7 +824,7 @@ by nnmaildir-request-article.")
 	  (dolist (file  (funcall ls ndir nil "\\`[^.]" 'nosort))
 	    (setq x (concat ndir file))
 	    (and (time-less-p (nth 5 (file-attributes x)) (current-time))
-		 (rename-file x (concat cdir file ":2,"))))
+		 (rename-file x (concat cdir (nnmaildir--ensure-suffix file)))))
 	  (setf (nnmaildir--grp-new group) nattr))
 	(setq cattr (nth 5 (file-attributes cdir)))
 	(if (equal cattr (nnmaildir--grp-cur group))
@@ -789,11 +849,23 @@ by nnmaildir-request-article.")
 		cdir (nnmaildir--marks-dir nndir)
 		ndir (nnmaildir--subdir cdir "tick")
 		cdir (nnmaildir--subdir cdir "read"))
-	  (dolist (file files)
-	    (setq file (car file))
-	    (if (or (not (file-exists-p (concat cdir file)))
-		    (file-exists-p (concat ndir file)))
-		(setq num (1+ num)))))
+	  (dolist (prefix-suffix files)
+	    (let ((prefix (car prefix-suffix))
+		  (suffix (cdr prefix-suffix)))
+	      ;; increase num for each unread or ticked article
+	      (when (or
+		     ;; first look for marks in suffix, if it's valid...
+		     (when (and (stringp suffix)
+				(string-prefix-p ":2," suffix))
+		       (or
+			(not (string-match-p
+			      (string (nnmaildir--mark-to-flag 'read)) suffix))
+			(string-match-p
+			 (string (nnmaildir--mark-to-flag 'tick)) suffix)))
+		     ;; then look in marks directories
+		     (not (file-exists-p (concat cdir prefix)))
+		     (file-exists-p (concat ndir prefix)))
+		(incf num)))))
 	(setf (nnmaildir--grp-cache group) (make-vector num nil))
         (let ((inhibit-quit t))
           (set (intern gname groups) group))
@@ -922,11 +994,14 @@ by nnmaildir-request-article.")
   'group)
 
 (defun nnmaildir-request-update-info (gname info &optional server)
-  (let ((group (nnmaildir--prepare server gname))
-	pgname flist always-marks never-marks old-marks dotfile num dir
-	markdirs marks mark ranges markdir article read end new-marks ls
-	old-mmth new-mmth mtime mark-sym existing missing deactivate-mark
-	article-list)
+  (let* ((group (nnmaildir--prepare server gname))
+	 (curdir (nnmaildir--cur
+		  (nnmaildir--srvgrp-dir
+		   (nnmaildir--srv-dir nnmaildir--cur-server) gname)))
+	 (curdir-mtime (nth 5 (file-attributes curdir)))
+	 pgname flist always-marks never-marks old-marks dotfile num dir
+	 all-marks marks mark ranges markdir read end new-marks ls
+	 old-mmth new-mmth mtime mark-sym existing missing deactivate-mark)
     (catch 'return
       (unless group
 	(setf (nnmaildir--srv-error nnmaildir--cur-server)
@@ -955,34 +1030,71 @@ by nnmaildir-request-article.")
 	    dir (nnmaildir--nndir dir)
 	    dir (nnmaildir--marks-dir dir)
             ls (nnmaildir--group-ls nnmaildir--cur-server pgname)
-	    markdirs (funcall ls dir nil "\\`[^.]" 'nosort)
-	    new-mmth (nnmaildir--up2-1 (length markdirs))
+	    all-marks (gnus-delete-duplicates
+		       ;; get mark names from mark dirs and from flag
+		       ;; mappings
+		       (append
+			(mapcar 'cdr nnmaildir-flag-mark-mapping)
+			(mapcar 'intern (funcall ls dir nil "\\`[^.]" 'nosort))))
+	    new-mmth (nnmaildir--up2-1 (length all-marks))
 	    new-mmth (make-vector new-mmth 0)
 	    old-mmth (nnmaildir--grp-mmth group))
-      (dolist (mark markdirs)
-	(setq markdir (nnmaildir--subdir dir mark)
-	      mark-sym (intern mark)
+      (dolist (mark all-marks)
+	(setq markdir (nnmaildir--subdir dir (symbol-name mark))
 	      ranges nil)
 	(catch 'got-ranges
-	  (if (memq mark-sym never-marks) (throw 'got-ranges nil))
-	  (when (memq mark-sym always-marks)
+	  (if (memq mark never-marks) (throw 'got-ranges nil))
+	  (when (memq mark always-marks)
 	    (setq ranges existing)
 	    (throw 'got-ranges nil))
-	  (setq mtime (nth 5 (file-attributes markdir)))
-	  (set (intern mark new-mmth) mtime)
-	  (when (equal mtime (symbol-value (intern-soft mark old-mmth)))
-	    (setq ranges (assq mark-sym old-marks))
+	  ;; Find the mtime for this mark.  If this mark can be expressed as
+	  ;; a filename flag, get the later of the mtimes for markdir and
+	  ;; curdir, otherwise only the markdir counts.
+	  (setq mtime
+		(let ((markdir-mtime (nth 5 (file-attributes markdir))))
+		  (cond
+		   ((null (nnmaildir--mark-to-flag mark))
+		    markdir-mtime)
+		   ((null markdir-mtime)
+		    curdir-mtime)
+		   ((null curdir-mtime)
+		    ;; this should never happen...
+		    markdir-mtime)
+		   ((time-less-p markdir-mtime curdir-mtime)
+		    curdir-mtime)
+		   (t
+		    markdir-mtime))))
+	  (set (intern (symbol-name mark) new-mmth) mtime)
+	  (when (equal mtime (symbol-value (intern-soft (symbol-name mark) old-mmth)))
+	    (setq ranges (assq mark old-marks))
 	    (if ranges (setq ranges (cdr ranges)))
 	    (throw 'got-ranges nil))
-	  (setq article-list nil)
-	  (dolist (prefix (funcall ls markdir nil "\\`[^.]" 'nosort))
-	    (setq article (nnmaildir--flist-art flist prefix))
-	    (if article
-		(setq article-list
-		      (cons (nnmaildir--art-num article) article-list))))
-	  (setq ranges (gnus-add-to-range ranges (sort article-list '<))))
-	(if (eq mark-sym 'read) (setq read ranges)
-	  (if ranges (setq marks (cons (cons mark-sym ranges) marks)))))
+	  (let ((article-list nil))
+	    ;; Consider the article marked if it either has the flag in the
+	    ;; filename, or is in the markdir.  As you'd rarely remove a
+	    ;; flag/mark, this should avoid losing information in the most
+	    ;; common usage pattern.
+	    (or
+	     (let ((flag (nnmaildir--mark-to-flag mark)))
+	       ;; If this mark has a corresponding maildir flag...
+	       (when flag
+		 (let ((regexp
+			(concat "\\`[^.].*:2,[A-Z]*" (string flag))))
+		   ;; ...then find all files with that flag.
+		   (dolist (filename (funcall ls curdir nil regexp 'nosort))
+		     (let* ((prefix (car (split-string filename ":2,")))
+			    (article (nnmaildir--flist-art flist prefix)))
+		       (when article
+			 (push (nnmaildir--art-num article) article-list)))))))
+	     ;; Also check Gnus-specific mark directory, if it exists.
+	     (when (file-directory-p markdir)
+	       (dolist (prefix (funcall ls markdir nil "\\`[^.]" 'nosort))
+		 (let ((article (nnmaildir--flist-art flist prefix)))
+		   (when article
+		     (push (nnmaildir--art-num article) article-list))))))
+	    (setq ranges (gnus-add-to-range ranges (sort article-list '<)))))
+	(if (eq mark 'read) (setq read ranges)
+	  (if ranges (setq marks (cons (cons mark ranges) marks)))))
       (gnus-info-set-read info (gnus-range-add read missing))
       (gnus-info-set-marks info marks 'extend)
       (setf (nnmaildir--grp-mmth group) new-mmth)
@@ -1530,39 +1642,63 @@ by nnmaildir-request-article.")
       didnt)))
 
 (defun nnmaildir-request-set-mark (gname actions &optional server)
-  (let ((group (nnmaildir--prepare server gname))
-	(coding-system-for-write nnheader-file-coding-system)
-	(buffer-file-coding-system nil)
-	(file-coding-system-alist nil)
-	del-mark del-action add-action set-action marksdir nlist
-	ranges begin end article all-marks todo-marks mdir mfile
-	pgname ls permarkfile deactivate-mark)
+  (let* ((group (nnmaildir--prepare server gname))
+	 (curdir (nnmaildir--cur
+		  (nnmaildir--srvgrp-dir
+		   (nnmaildir--srv-dir nnmaildir--cur-server)
+		   gname)))
+	 (coding-system-for-write nnheader-file-coding-system)
+	 (buffer-file-coding-system nil)
+	 (file-coding-system-alist nil)
+	 del-mark del-action add-action set-action marksdir nlist
+	 ranges begin end article all-marks todo-marks mdir mfile
+	 pgname ls permarkfile deactivate-mark)
     (setq del-mark
 	  (lambda (mark)
-	    (setq mfile (nnmaildir--subdir marksdir (symbol-name mark))
-		  mfile (concat mfile (nnmaildir--art-prefix article)))
-	    (nnmaildir--unlink mfile))
+	    (let ((prefix (nnmaildir--art-prefix article))
+		  (suffix (nnmaildir--art-suffix article))
+		  (flag (nnmaildir--mark-to-flag mark)))
+	      (when flag
+		;; If this mark corresponds to a flag, remove the flag from
+		;; the file name.
+		(nnmaildir--article-set-flags
+		 article (nnmaildir--remove-flag flag suffix) curdir))
+	      ;; We still want to delete the hardlink in the marks dir if
+	      ;; present, regardless of whether this mark has a maildir flag or
+	      ;; not, to avoid getting out of sync.
+	      (setq mfile (nnmaildir--subdir marksdir (symbol-name mark))
+		    mfile (concat mfile prefix))
+	      (nnmaildir--unlink mfile)))
 	  del-action (lambda (article) (mapcar del-mark todo-marks))
 	  add-action
 	  (lambda (article)
 	    (mapcar
 	     (lambda (mark)
-	       (setq mdir (nnmaildir--subdir marksdir (symbol-name mark))
-		     permarkfile (concat mdir ":")
-		     mfile (concat mdir (nnmaildir--art-prefix article)))
-	       (nnmaildir--condcase err (add-name-to-file permarkfile mfile)
-		 (cond
-		  ((nnmaildir--eexist-p err))
-		  ((nnmaildir--enoent-p err)
-		   (nnmaildir--mkdir mdir)
-		   (nnmaildir--mkfile permarkfile)
-		   (add-name-to-file permarkfile mfile))
-		  ((nnmaildir--emlink-p err)
-		   (let ((permarkfilenew (concat permarkfile "{new}")))
-		     (nnmaildir--mkfile permarkfilenew)
-		     (rename-file permarkfilenew permarkfile 'replace)
-		     (add-name-to-file permarkfile mfile)))
-		  (t (signal (car err) (cdr err))))))
+	       (let ((prefix (nnmaildir--art-prefix article))
+		     (suffix (nnmaildir--art-suffix article))
+		     (flag (nnmaildir--mark-to-flag mark)))
+		 (if flag
+		     ;; If there is a corresponding maildir flag, just rename
+		     ;; the file.
+		     (nnmaildir--article-set-flags
+		      article (nnmaildir--add-flag flag suffix) curdir)
+		   ;; Otherwise, use nnmaildir-specific marks dir.
+		   (setq mdir (nnmaildir--subdir marksdir (symbol-name mark))
+			 permarkfile (concat mdir ":")
+			 mfile (concat mdir prefix))
+		   (nnmaildir--condcase err (add-name-to-file permarkfile mfile)
+		     (cond
+		      ((nnmaildir--eexist-p err))
+		      ((nnmaildir--enoent-p err)
+		       (nnmaildir--mkdir mdir)
+		       (nnmaildir--mkfile permarkfile)
+		       (add-name-to-file permarkfile mfile))
+		      ((nnmaildir--emlink-p err)
+		       (let ((permarkfilenew (concat permarkfile "{new}")))
+			 (nnmaildir--mkfile permarkfilenew)
+			 (rename-file permarkfilenew permarkfile 'replace)
+			 (add-name-to-file permarkfile mfile)))
+		      (t (signal (car err) (cdr err))))))))
 	     todo-marks))
 	  set-action (lambda (article)
 		       (funcall add-action article)
@@ -1586,7 +1722,12 @@ by nnmaildir-request-article.")
             pgname (nnmaildir--pgname nnmaildir--cur-server gname)
             ls (nnmaildir--group-ls nnmaildir--cur-server pgname)
 	    all-marks (funcall ls marksdir nil "\\`[^.]" 'nosort)
-	    all-marks (mapcar 'intern all-marks))
+	    all-marks (gnus-delete-duplicates
+		       ;; get mark names from mark dirs and from flag
+		       ;; mappings
+		       (append
+			(mapcar 'cdr nnmaildir-flag-mark-mapping)
+			(mapcar 'intern all-marks))))
       (dolist (action actions)
 	(setq ranges (car action)
 	      todo-marks (caddr action))
-- 
1.7.10.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* bug#8055: Review of Bug#8055 patch
  2011-02-16 14:24 bug#8055: 24.0.50; [nnmaildir/Gnus] please support in-filename Maildir flags Luca Capello
  2011-06-29 23:34 ` Lars Magne Ingebrigtsen
  2012-08-11 18:25 ` bug#8055: Patch for handling Maildir flags in nnmaildir Magnus Henoch
@ 2012-08-26  2:49 ` Chong Yidong
  2012-09-03 16:09   ` Lars Ingebrigtsen
       [not found]   ` <87r4qj2imn.fsf@gnus.org>
  2 siblings, 2 replies; 19+ messages in thread
From: Chong Yidong @ 2012-08-26  2:49 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Magnus Henoch, 8055

Hi Lars,

Please review the patch posted by Magnus Henoch at

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8055

Thanks.





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#8055: Review of Bug#8055 patch
  2012-08-26  2:49 ` bug#8055: Review of Bug#8055 patch Chong Yidong
@ 2012-09-03 16:09   ` Lars Ingebrigtsen
       [not found]   ` <87r4qj2imn.fsf@gnus.org>
  1 sibling, 0 replies; 19+ messages in thread
From: Lars Ingebrigtsen @ 2012-09-03 16:09 UTC (permalink / raw)
  To: Chong Yidong; +Cc: Magnus Henoch, 8055, ding

Chong Yidong <cyd@gnu.org> writes:

> Please review the patch posted by Magnus Henoch at
>
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8055

I don't use nnmaildir myself, and I'm not quite sure that I know how it
works, but I've had a look over the patch, and it looks fine to me.

Perhaps somebody on the ding mailing list (Cc'd) has any input?

-- 
(domestic pets only, the antidote for overdose, milk.)
  http://lars.ingebrigtsen.no  *  Sent from my Rome





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#8055: Review of Bug#8055 patch
       [not found]   ` <87r4qj2imn.fsf@gnus.org>
@ 2012-09-04  6:50     ` Zweimueller Wolfgang
       [not found]     ` <w7s7gsae0yr.fsf@salk.at>
  1 sibling, 0 replies; 19+ messages in thread
From: Zweimueller Wolfgang @ 2012-09-04  6:50 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Magnus Henoch, Chong Yidong, 8055, ding


Good Morning,

I'm new here. I tried Magnus' patch because I lost a lot of mails with
offlineimap (v6.5.4-1) and Gnus 5.13.

"Lars Ingebrigtsen" <larsi@gnus.org> writes:

> Chong Yidong <cyd@gnu.org> writes:
>
>> Please review the patch posted by Magnus Henoch at
>>
>> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8055
>
> I don't use nnmaildir myself, and I'm not quite sure that I know how it
> works, but I've had a look over the patch, and it looks fine to me.

I can't say anything about the code itself (I don't write Lisp code).

I tried the patch from Magnus branch (actually the whole branch). And
it did not change anything: there were still a lot of lost mails!
Additionally Gnus had problems finding mails it renamed. At this point
I was unable to rescan the inbox or leave it. 


Best regards,
Wolfgang





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#8055: Review of Bug#8055 patch
       [not found]     ` <w7s7gsae0yr.fsf@salk.at>
@ 2012-09-05  8:17       ` Magnus Henoch
  2012-09-05 10:33         ` Zweimueller Wolfgang
  0 siblings, 1 reply; 19+ messages in thread
From: Magnus Henoch @ 2012-09-05  8:17 UTC (permalink / raw)
  To: Zweimueller Wolfgang; +Cc: Lars Ingebrigtsen, Chong Yidong, 8055, ding

Zweimueller Wolfgang <w.zweimueller@salk.at> writes:

> I tried the patch from Magnus branch (actually the whole branch). And
> it did not change anything: there were still a lot of lost mails!
> Additionally Gnus had problems finding mails it renamed. At this point
> I was unable to rescan the inbox or leave it. 

Could you run "ls -lR" in your maildir directory and send me the output?
I suspect nnmaildir might choke on some strange filenames...

Regards,
Magnus





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#8055: Review of Bug#8055 patch
  2012-09-05  8:17       ` Magnus Henoch
@ 2012-09-05 10:33         ` Zweimueller Wolfgang
  0 siblings, 0 replies; 19+ messages in thread
From: Zweimueller Wolfgang @ 2012-09-05 10:33 UTC (permalink / raw)
  To: Magnus Henoch; +Cc: Lars Ingebrigtsen, Chong Yidong, 8055, ding

[-- Attachment #1: Type: text/plain, Size: 1086 bytes --]

"Magnus Henoch" <magnus.henoch@gmail.com> writes:

> Zweimueller Wolfgang <w.zweimueller@salk.at> writes:
>
>> I tried the patch from Magnus branch (actually the whole branch). And
>> it did not change anything: there were still a lot of lost mails!
>> Additionally Gnus had problems finding mails it renamed. At this point
>> I was unable to rescan the inbox or leave it.
>
> Could you run "ls -lR" in your maildir directory and send me the output?
> I suspect nnmaildir might choke on some strange filenames...

O.K. See the attached file. You can see a lot of files with a size of
1 Byte...

BTW, because of the troubles (its my office system) I switched to a
local IMAP server.


Regards,
Wolfgang
-- 
Servicebereich Informatik und Medizintechnik
Infrastruktur

Wolfgang Zweimüller
Rechenzentrumsleiter Unix

Gemeinnützige Salzburger Landeskliniken Betriebsgesellschaft.m.b.H
Müllner Hauptstraße 48 | A-5020 Salzburg
Telefon: +43(0)662-4482-4903 | Fax: +43 (0)662-4482-4908
Mobil: +43(0)676-89972-4903
w.zweimueller@salk.at | http://www.salk.at

[-- Attachment #2: lslR_INBOX.txt --]
[-- Type: text/plain, Size: 31804 bytes --]

Maildir/INBOX:
total 380
drwx------ 2 dvwza dvwza 258048 Sep  5 11:05 cur/
drwx------ 2 dvwza dvwza 118784 Sep  5 11:05 new/
drwx------ 2 dvwza dvwza   4096 Sep  5 11:05 tmp/

Maildir/INBOX/cur:
total 49684
-rw-r--r-- 1 dvwza dvwza   23993 Aug 30 14:08 1346328482_1.6717.u1it020,U=646660,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   58053 Aug 30 14:08 1346328482_2.6717.u1it020,U=628742,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   42637 Aug 30 14:08 1346328482_3.6717.u1it020,U=626092,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   63824 Aug 30 14:08 1346328482_4.6717.u1it020,U=634380,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    2146 Aug 30 14:08 1346328482_5.6717.u1it020,U=641549,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    7980 Aug 30 14:08 1346328482_6.6717.u1it020,U=639513,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   16143 Aug 30 14:08 1346328482_7.6717.u1it020,U=605207,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    5197 Aug 30 14:08 1346328483_0.6717.u1it020,U=623643,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   77539 Aug 30 14:08 1346328483_1.6717.u1it020,U=641050,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    2842 Aug 30 14:08 1346328483_4.6717.u1it020,U=641566,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    5366 Aug 30 14:08 1346328483_6.6717.u1it020,U=508450,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   33453 Aug 30 14:08 1346328483_8.6717.u1it020,U=586279,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   56469 Aug 30 14:08 1346328483_9.6717.u1it020,U=641628,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza  372514 Aug 30 14:08 1346328484_0.6717.u1it020,U=574509,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   94347 Aug 30 14:08 1346328484_10.6717.u1it020,U=520255,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   78687 Aug 30 14:08 1346328484_2.6717.u1it020,U=564785,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   33244 Aug 30 14:08 1346328484_3.6717.u1it020,U=646709,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza  421388 Aug 30 14:08 1346328484_4.6717.u1it020,U=647730,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    2926 Aug 30 14:08 1346328484_5.6717.u1it020,U=623670,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    9491 Aug 30 14:08 1346328484_6.6717.u1it020,U=647735,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   24711 Aug 30 14:08 1346328484_7.6717.u1it020,U=647738,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   30372 Aug 30 14:08 1346328484_8.6717.u1it020,U=647741,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   35785 Aug 30 14:08 1346328484_9.6717.u1it020,U=647742,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    3381 Aug 30 14:08 1346328485_0.6717.u1it020,U=641548,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    7318 Aug 30 14:08 1346328485_2.6717.u1it020,U=653899,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    4380 Aug 30 14:08 1346328485_3.6717.u1it020,U=631884,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   44012 Aug 30 14:08 1346328485_4.6717.u1it020,U=486989,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   43650 Aug 30 14:08 1346328485_5.6717.u1it020,U=647762,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   25779 Aug 30 14:08 1346328485_8.6717.u1it020,U=639065,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza 1556305 Aug 30 14:08 1346328486_0.6717.u1it020,U=647827,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza  127859 Aug 30 14:08 1346328486_2.6717.u1it020,U=617564,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza 5597995 Aug 30 14:08 1346328489_0.6717.u1it020,U=654033,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,,2:RS
-rw-r--r-- 1 dvwza dvwza   15779 Aug 30 14:08 1346328489_1.6717.u1it020,U=627472,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   12789 Aug 30 14:08 1346328489_2.6717.u1it020,U=621156,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,,2:S
-rw-r--r-- 1 dvwza dvwza    1783 Aug 30 14:08 1346328489_3.6717.u1it020,U=627816,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   16121 Aug 30 14:08 1346328489_4.6717.u1it020,U=605290,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   17046 Aug 30 14:08 1346328490_1.6717.u1it020,U=622700,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    1602 Aug 30 14:08 1346328490_2.6717.u1it020,U=591471,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   33181 Aug 30 14:08 1346328490_3.6717.u1it020,U=646769,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza 6253191 Aug 30 14:08 1346328490_4.6717.u1it020,U=564320,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    4111 Aug 30 14:08 1346328491_0.6717.u1it020,U=588917,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   51189 Aug 30 14:08 1346328491_10.6717.u1it020,U=646804,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   19730 Aug 30 14:08 1346328491_1.6717.u1it020,U=588564,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   14873 Aug 30 14:08 1346328491_2.6717.u1it020,U=652479,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza 1678610 Aug 30 14:08 1346328491_3.6717.u1it020,U=647828,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   19442 Aug 30 14:08 1346328491_4.6717.u1it020,U=642666,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    7568 Aug 30 14:08 1346328491_5.6717.u1it020,U=653540,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   14280 Aug 30 14:08 1346328491_6.6717.u1it020,U=642412,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   35995 Aug 30 14:08 1346328491_7.6717.u1it020,U=642753,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    5600 Aug 30 14:08 1346328491_9.6717.u1it020,U=634003,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    8603 Aug 30 14:08 1346328492_2.6717.u1it020,U=641688,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    9692 Aug 30 14:08 1346328492_3.6717.u1it020,U=641647,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   13770 Aug 30 14:08 1346328492_4.6717.u1it020,U=631452,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza 1677473 Aug 30 14:08 1346328492_5.6717.u1it020,U=634002,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    7085 Aug 30 14:08 1346328492_6.6717.u1it020,U=652446,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,S
-rw-r--r-- 1 dvwza dvwza    1290 Aug 30 14:08 1346328492_7.6717.u1it020,U=653850,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    7781 Aug 30 14:08 1346328493_0.6717.u1it020,U=593060,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   14108 Aug 30 14:08 1346328493_11.6717.u1it020,U=646842,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    8165 Aug 30 14:08 1346328493_12.6717.u1it020,U=652989,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    7426 Aug 30 14:08 1346328493_13.6717.u1it020,U=653502,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    9956 Aug 30 14:08 1346328493_14.6717.u1it020,U=642751,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   28824 Aug 30 14:08 1346328493_15.6717.u1it020,U=642752,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   91975 Aug 30 14:08 1346328493_1.6717.u1it020,U=630945,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    8879 Aug 30 14:08 1346328493_2.6717.u1it020,U=653991,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    3107 Aug 30 14:08 1346328493_4.6717.u1it020,U=649330,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,,2:S
-rw-r--r-- 1 dvwza dvwza   24182 Aug 30 14:08 1346328493_5.6717.u1it020,U=642732,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    3992 Aug 30 14:08 1346328493_6.6717.u1it020,U=652976,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    7971 Aug 30 14:08 1346328493_7.6717.u1it020,U=601266,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   13005 Aug 30 14:08 1346328493_9.6717.u1it020,U=623283,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   15297 Aug 30 14:08 1346328494_0.6717.u1it020,U=594208,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   12671 Aug 30 14:08 1346328494_12.6717.u1it020,U=544991,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   13267 Aug 30 14:08 1346328494_1.6717.u1it020,U=624842,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   31059 Aug 30 14:08 1346328494_3.6717.u1it020,U=585931,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    2334 Aug 30 14:08 1346328494_4.6717.u1it020,U=633041,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   35080 Aug 30 14:08 1346328494_7.6717.u1it020,U=638169,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza  173528 Aug 30 14:08 1346328494_8.6717.u1it020,U=625882,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   42044 Aug 30 14:08 1346328494_9.6717.u1it020,U=642779,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    6594 Aug 30 14:08 1346328495_0.6717.u1it020,U=593124,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   13971 Aug 30 14:08 1346328495_1.6717.u1it020,U=588520,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    3170 Aug 30 14:08 1346328495_3.6717.u1it020,U=639722,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   23189 Aug 30 14:08 1346328495_8.6717.u1it020,U=653056,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    6099 Aug 30 14:08 1346328495_9.6717.u1it020,U=590084,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   45736 Aug 30 14:08 1346328496_0.6717.u1it020,U=449289,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,,2:S
-rw-r--r-- 1 dvwza dvwza  768241 Aug 30 14:08 1346328496_1.6717.u1it020,U=642807,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   11405 Aug 30 14:08 1346328496_4.6717.u1it020,U=631056,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    6460 Aug 30 14:08 1346328496_5.6717.u1it020,U=590099,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   13299 Aug 30 14:08 1346328496_6.6717.u1it020,U=257812,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   17790 Aug 30 14:08 1346328496_7.6717.u1it020,U=632087,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza 1574177 Aug 30 14:08 1346328497_0.6717.u1it020,U=588559,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    6458 Aug 30 14:08 1346328497_1.6717.u1it020,U=590106,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    3528 Aug 30 14:08 1346328497_3.6717.u1it020,U=653089,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    6377 Aug 30 14:08 1346328497_4.6717.u1it020,U=653090,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   62145 Aug 30 14:08 1346328497_5.6717.u1it020,U=639779,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,,2:S
-rw-r--r-- 1 dvwza dvwza    3627 Aug 30 14:08 1346328497_6.6717.u1it020,U=653604,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    3076 Aug 30 14:08 1346328497_7.6717.u1it020,U=653093,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    9341 Aug 30 14:08 1346328497_8.6717.u1it020,U=653607,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza  505605 Aug 30 14:08 1346328498_0.6717.u1it020,U=653610,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    1688 Aug 30 14:08 1346328498_1.6717.u1it020,U=378667,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   17147 Aug 30 14:08 1346328498_2.6717.u1it020,U=630573,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    3220 Aug 30 14:08 1346328498_3.6717.u1it020,U=629040,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza  412498 Aug 30 14:08 1346328499_0.6717.u1it020,U=587570,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    7541 Aug 30 14:08 1346328499_1.6717.u1it020,U=625971,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   63368 Aug 30 14:08 1346328500_0.6717.u1it020,U=639803,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,,2:RS
-rw-r--r-- 1 dvwza dvwza   21160 Aug 30 14:08 1346328500_1.6717.u1it020,U=653630,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   18749 Aug 30 14:08 1346328500_2.6717.u1it020,U=637759,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   64018 Aug 30 14:08 1346328500_3.6717.u1it020,U=637760,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza 7176104 Aug 30 14:08 1346328500_4.6717.u1it020,U=552224,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   65189 Aug 30 14:08 1346328501_0.6717.u1it020,U=639811,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   11532 Aug 30 14:08 1346328501_1.6717.u1it020,U=647734,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    2994 Aug 30 14:08 1346328501_3.6717.u1it020,U=620875,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   52121 Aug 30 14:08 1346328501_4.6717.u1it020,U=647733,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    2172 Aug 30 14:08 1346328501_5.6717.u1it020,U=653900,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza  110214 Aug 30 14:08 1346328501_6.6717.u1it020,U=630611,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza 2801431 Aug 30 14:08 1346328502_0.6717.u1it020,U=636226,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   42532 Aug 30 14:08 1346328502_1.6717.u1it020,U=638805,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    6181 Aug 30 14:08 1346328502_4.6717.u1it020,U=653661,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   12594 Aug 30 14:08 1346328502_5.6717.u1it020,U=503012,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   84256 Aug 30 14:08 1346328502_7.6717.u1it020,U=642411,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   66395 Aug 30 14:08 1346328502_8.6717.u1it020,U=639850,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza  123816 Aug 30 14:08 1346328503_0.6717.u1it020,U=520556,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    5020 Aug 30 14:08 1346328503_11.6717.u1it020,U=527250,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   23535 Aug 30 14:08 1346328503_1.6717.u1it020,U=653166,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,,2:S
-rw-r--r-- 1 dvwza dvwza   11007 Aug 30 14:08 1346328503_2.6717.u1it020,U=593128,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   11438 Aug 30 14:08 1346328503_3.6717.u1it020,U=653172,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    4208 Aug 30 14:08 1346328503_4.6717.u1it020,U=558969,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza  219249 Aug 30 14:08 1346328503_5.6717.u1it020,U=519027,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   21011 Aug 30 14:08 1346328503_6.6717.u1it020,U=653690,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    3866 Aug 30 14:08 1346328503_7.6717.u1it020,U=562043,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza  108528 Aug 30 14:08 1346328504_0.6717.u1it020,U=624023,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    4214 Aug 30 14:08 1346328504_10.6717.u1it020,U=589261,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    7912 Aug 30 14:08 1346328504_11.6717.u1it020,U=591329,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza  135304 Aug 30 14:08 1346328504_12.6717.u1it020,U=627158,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza  323921 Aug 30 14:08 1346328504_1.6717.u1it020,U=638353,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   14697 Aug 30 14:08 1346328504_3.6717.u1it020,U=654065,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    5420 Aug 30 14:08 1346328504_4.6717.u1it020,U=624553,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   71909 Aug 30 14:08 1346328504_7.6717.u1it020,U=574899,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   11003 Aug 30 14:08 1346328504_8.6717.u1it020,U=630719,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    2893 Aug 30 14:08 1346328504_9.6717.u1it020,U=508361,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    6563 Aug 30 14:08 1346328505_0.6717.u1it020,U=593891,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   11083 Aug 30 14:08 1346328505_1.6717.u1it020,U=641508,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   12936 Aug 30 14:08 1346328505_2.6717.u1it020,U=641509,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    5373 Aug 30 14:08 1346328505_3.6717.u1it020,U=623081,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   17052 Aug 30 14:08 1346328505_4.6717.u1it020,U=551911,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   10887 Aug 30 14:08 1346328505_5.6717.u1it020,U=644588,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza 6072041 Aug 30 14:08 1346328511_0.6717.u1it020,U=599534,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    7472 Aug 30 14:08 1346328512_0.6717.u1it020,U=599537,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza 7610102 Aug 30 14:08 1346328512_2.6717.u1it020,U=599536,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    7928 Aug 30 14:08 1346328512_3.6717.u1it020,U=641526,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    2886 Aug 30 14:08 1346328512_4.6717.u1it020,U=515065,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   19372 Aug 30 14:08 1346328512_5.6717.u1it020,U=473083,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    2878 Aug 30 14:08 1346328512_6.6717.u1it020,U=515071,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    6718 Aug 30 14:08 1346328512_7.6717.u1it020,U=591357,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Aug 30 14:19 1346329177_0.6717.u1it020,U=654122,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   75614 Aug 30 14:25 1346329538_0.6717.u1it020,U=654125,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Aug 30 14:47 1346330869_0.6717.u1it020,U=654143,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Aug 30 14:56 1346331412_0.6717.u1it020,U=654154,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   29703 Aug 30 15:05 1346331956_0.6717.u1it020,U=654165,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,::2,S
-rw-r--r-- 1 dvwza dvwza       1 Aug 30 15:48 1346334493_0.6717.u1it020,U=654336,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,S
-rw-r--r-- 1 dvwza dvwza  102482 Aug 30 15:50 1346334615_0.6717.u1it020,U=654343,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Aug 30 16:04 1346335460_0.6717.u1it020,U=654352,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,,2:S
-rw-r--r-- 1 dvwza dvwza       1 Aug 30 16:07 1346335644_0.6717.u1it020,U=654360,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,,2:S
-rw-r--r-- 1 dvwza dvwza       1 Aug 30 16:09 1346335765_0.6717.u1it020,U=654374,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,,2:S
-rw-r--r-- 1 dvwza dvwza       1 Aug 30 16:35 1346337337_0.6717.u1it020,U=654419,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Aug 30 18:25 1346343910_1.6717.u1it020,U=654478,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Aug 30 19:32 1346347935_0.1379.u1it020,U=654511,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Aug 30 20:04 1346349876_0.1379.u1it020,U=654566,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Aug 31 08:25 1346394319_0.1379.u1it020,U=655037,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Aug 31 08:37 1346395049_0.1379.u1it020,U=655039,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    7661 Aug 31 08:37 1346395049_2.1379.u1it020,U=655038,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Aug 31 09:42 1346398972_0.1379.u1it020,U=655070,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,S
-rw-r--r-- 1 dvwza dvwza       1 Aug 31 09:48 1346399334_0.1379.u1it020,U=655076,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza  323617 Aug 31 09:51 1346399516_1.1379.u1it020,U=655084,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Aug 31 10:21 1346401267_0.1379.u1it020,U=655099,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Aug 31 10:30 1346401811_0.1379.u1it020,U=655106,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza  484655 Aug 31 10:40 1346402415_0.1379.u1it020,U=655109,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Aug 31 10:45 1346402718_0.1379.u1it020,U=655164,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Aug 31 11:02 1346403747_0.1379.u1it020,U=655172,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Aug 31 11:41 1346406102_0.1379.u1it020,U=655195,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    2350 Aug 31 11:51 1346406706_0.1379.u1it020,U=655209,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,S
-rw-r--r-- 1 dvwza dvwza    1747 Aug 31 11:51 1346406706_1.1379.u1it020,U=655210,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,S
-rw-r--r-- 1 dvwza dvwza       1 Aug 31 12:06 1346407612_0.1379.u1it020,U=655221,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Aug 31 12:19 1346408396_0.1379.u1it020,U=655230,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   12648 Aug 31 12:19 1346408396_1.1379.u1it020,U=655231,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza  489104 Aug 31 12:24 1346408698_0.1379.u1it020,U=655235,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Aug 31 13:46 1346413588_1.1379.u1it020,U=655245,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   11537 Aug 31 14:21 1346415702_0.1379.u1it020,U=655269,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   10395 Aug 31 20:52 1346439169_0.1379.u1it020,U=655330,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Aug 31 20:52 1346439169_1.1379.u1it020,U=655331,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   11215 Aug 31 21:40 1346442002_0.1379.u1it020,U=655352,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    4694 Sep  1 11:35 1346492153_0.1379.u1it020,U=656446,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    5132 Sep  1 11:51 1346493118_0.1379.u1it020,U=656449,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  1 18:58 1346518698_1.1379.u1it020,U=656720,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   42309 Sep  1 18:58 1346518698_6.1379.u1it020,U=656727,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  1 21:08 1346526538_0.1379.u1it020,U=656770,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  1 21:10 1346526659_0.1379.u1it020,U=656775,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  2 10:39 1346575142_1.1379.u1it020,U=657202,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Sep  2 13:30 1346585458_0.1379.u1it020,U=657270,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Sep  2 18:12 1346602338_0.1379.u1it020,U=657290,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  3 08:45 1346654738_0.1379.u1it020,U=657593,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    1063 Sep  3 08:45 1346654738_1.1379.u1it020,U=657594,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  3 08:58 1346655503_0.1379.u1it020,U=657598,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  3 09:15 1346656530_0.1379.u1it020,U=657611,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,::2,S
-rw-r--r-- 1 dvwza dvwza   17993 Sep  3 09:15 1346656530_1.1379.u1it020,U=657608,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  3 09:22 1346656953_0.1379.u1it020,U=657614,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Sep  3 09:35 1346657737_0.1379.u1it020,U=657620,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Sep  3 09:54 1346658884_0.1379.u1it020,U=657630,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  3 11:12 1346663528_0.1379.u1it020,U=657657,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Sep  3 11:22 1346664132_0.1379.u1it020,U=657660,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Sep  3 12:23 1346667814_0.1379.u1it020,U=657681,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  3 12:28 1346668116_0.1379.u1it020,U=657683,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Sep  3 12:36 1346668600_0.1379.u1it020,U=657692,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Sep  3 12:39 1346668781_0.1379.u1it020,U=657699,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   15305 Sep  3 13:41 1346672477_1.32575.u1it020,U=657720,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  3 14:53 1346676795_0.32575.u1it020,U=657749,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Sep  3 15:09 1346677762_0.32575.u1it020,U=657752,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Sep  3 16:26 1346682362_0.32575.u1it020,U=657782,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Sep  3 16:58 1346684307_0.32575.u1it020,U=657805,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Sep  3 17:30 1346686244_0.32575.u1it020,U=657823,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    6493 Sep  3 18:12 1346688723_0.32575.u1it020,U=657832,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    5427 Sep  3 21:14 1346699688_0.32575.u1it020,U=658132,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    7421 Sep  4 07:55 1346738117_0.32575.u1it020,U=658224,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  4 08:49 1346741395_0.32575.u1it020,U=658261,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,::2,S
-rw-r--r-- 1 dvwza dvwza   21575 Sep  4 08:54 1346741698_2.32575.u1it020,U=658270,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Sep  4 09:27 1346743640_0.32575.u1it020,U=658281,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Sep  4 09:35 1346744127_0.32575.u1it020,U=658287,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  4 09:43 1346744612_0.32575.u1it020,U=658293,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  4 12:42 1346755327_0.32575.u1it020,U=658387,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   18571 Sep  4 14:18 1346761135_0.32575.u1it020,U=658423,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    5886 Sep  4 14:25 1346761558_0.32575.u1it020,U=658426,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  4 15:32 1346765553_0.32575.u1it020,U=658447,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  4 15:46 1346766399_0.32575.u1it020,U=658450,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Sep  4 16:44 1346769846_0.32575.u1it020,U=658467,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  4 16:45 1346769907_0.32575.u1it020,U=658469,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza   13199 Sep  4 21:04 1346785470_0.25297.u1it020,U=658569,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Sep  5 08:30 1346826659_0.25297.u1it020,U=658833,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza       1 Sep  5 09:33 1346830420_0.25297.u1it020,U=658883,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    2300 Sep  5 09:50 1346831450_0.25297.u1it020,U=658893,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    2547 Sep  5 09:50 1346831450_1.25297.u1it020,U=658891,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    4029 Sep  5 09:50 1346831451_0.25297.u1it020,U=658892,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    3365 Sep  5 09:54 1346831693_0.25297.u1it020,U=658896,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    8533 Sep  5 10:09 1346832540_0.25297.u1it020,U=658901,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    2460 Sep  5 10:09 1346832540_1.25297.u1it020,U=658902,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   13899 Sep  5 10:14 1346832842_0.25297.u1it020,U=658905,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    9241 Sep  5 10:17 1346833026_0.25297.u1it020,U=658908,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   12792 Sep  5 10:20 1346833207_0.25297.u1it020,U=658911,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   15551 Sep  5 10:45 1346834720_0.25297.u1it020,U=658914,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza       1 Sep  5 10:48 1346834907_0.25297.u1it020,U=658918,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
-rw-r--r-- 1 dvwza dvwza    2159 Sep  5 10:51 1346835088_0.25297.u1it020,U=658923,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza   13603 Sep  5 10:51 1346835088_1.25297.u1it020,U=658924,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    3479 Sep  5 11:05 1346835936_0.25297.u1it020,U=658929,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    3465 Sep  5 11:05 1346835936_1.25297.u1it020,U=658930,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    1297 Sep  5 11:05 1346835937_0.25297.u1it020,U=658931,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    1297 Sep  5 11:05 1346835937_1.25297.u1it020,U=658932,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,
-rw-r--r-- 1 dvwza dvwza    1198 Sep  5 11:05 1346835937_2.25297.u1it020,U=658933,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,:2,

Maildir/INBOX/new:
total 0

Maildir/INBOX/tmp:
total 0

^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#8055: Patch for handling Maildir flags in nnmaildir
  2012-08-11 18:25 ` bug#8055: Patch for handling Maildir flags in nnmaildir Magnus Henoch
@ 2012-09-05 12:57   ` Lars Ingebrigtsen
  2012-09-05 13:01     ` Lars Ingebrigtsen
  0 siblings, 1 reply; 19+ messages in thread
From: Lars Ingebrigtsen @ 2012-09-05 12:57 UTC (permalink / raw)
  To: Magnus Henoch; +Cc: 8055

Thanks; I've now applied this patch to Ma Gnus.

-- 
(domestic pets only, the antidote for overdose, milk.)
  http://lars.ingebrigtsen.no  *  Sent from my Emacs





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#8055: Patch for handling Maildir flags in nnmaildir
  2012-09-05 12:57   ` Lars Ingebrigtsen
@ 2012-09-05 13:01     ` Lars Ingebrigtsen
  2012-09-05 18:12       ` Magnus Henoch
  0 siblings, 1 reply; 19+ messages in thread
From: Lars Ingebrigtsen @ 2012-09-05 13:01 UTC (permalink / raw)
  To: Magnus Henoch; +Cc: 8055

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Thanks; I've now applied this patch to Ma Gnus.

Compilation gives this error, though:

nnmaildir.el:130:1:Error: (nnmaildir--art-suffix article) is not a valid place expression


-- 
(domestic pets only, the antidote for overdose, milk.)
  http://lars.ingebrigtsen.no  *  Sent from my Emacs





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#8055: Patch for handling Maildir flags in nnmaildir
  2012-09-05 13:01     ` Lars Ingebrigtsen
@ 2012-09-05 18:12       ` Magnus Henoch
  2012-09-05 22:30         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 19+ messages in thread
From: Magnus Henoch @ 2012-09-05 18:12 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 8055

[-- Attachment #1: Type: text/plain, Size: 466 bytes --]

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Lars Ingebrigtsen <larsi@gnus.org> writes:
>
>> Thanks; I've now applied this patch to Ma Gnus.
>
> Compilation gives this error, though:
>
> nnmaildir.el:130:1:Error: (nnmaildir--art-suffix article) is not a valid place expression

Right, nnmaildir--article-set-flags needs to be defined below the
nnmaildir--art defstruct.  (Spending too much time inside emacs
recompiling things incrementally can be a bad thing...)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: nnmaildir-fix.patch --]
[-- Type: text/x-patch, Size: 1704 bytes --]

diff --git a/lisp/nnmaildir.el b/lisp/nnmaildir.el
index caf2820..c5df510 100644
--- a/lisp/nnmaildir.el
+++ b/lisp/nnmaildir.el
@@ -127,16 +127,6 @@ SUFFIX should start with \":2,\"."
 	 (new-flags (concat (delq flag flags-as-list))))
     (concat ":2," new-flags)))
 
-(defun nnmaildir--article-set-flags (article new-suffix curdir)
-  (let* ((prefix (nnmaildir--art-prefix article))
-	 (suffix (nnmaildir--art-suffix article))
-	 (article-file (concat curdir prefix suffix))
-	 (new-name (concat curdir prefix new-suffix)))
-    (unless (file-exists-p article-file)
-      (error "Couldn't find article file %s" article-file))
-    (rename-file article-file new-name 'replace)
-    (setf (nnmaildir--art-suffix article) new-suffix)))
-
 (defvar nnmaildir-article-file-name nil
   "*The filename of the most recently requested article.  This variable is set
 by nnmaildir-request-article.")
@@ -212,6 +202,16 @@ by nnmaildir-request-article.")
   (gnm        	 nil)                      ;; flag: split from mail-sources?
   (target-prefix nil :type string))        ;; symlink target prefix
 
+(defun nnmaildir--article-set-flags (article new-suffix curdir)
+  (let* ((prefix (nnmaildir--art-prefix article))
+	 (suffix (nnmaildir--art-suffix article))
+	 (article-file (concat curdir prefix suffix))
+	 (new-name (concat curdir prefix new-suffix)))
+    (unless (file-exists-p article-file)
+      (error "Couldn't find article file %s" article-file))
+    (rename-file article-file new-name 'replace)
+    (setf (nnmaildir--art-suffix article) new-suffix)))
+
 (defun nnmaildir--expired-article (group article)
   (setf (nnmaildir--art-nov article) nil)
   (let ((flist  (nnmaildir--grp-flist group))

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* bug#8055: Patch for handling Maildir flags in nnmaildir
  2012-09-05 18:12       ` Magnus Henoch
@ 2012-09-05 22:30         ` Lars Ingebrigtsen
  0 siblings, 0 replies; 19+ messages in thread
From: Lars Ingebrigtsen @ 2012-09-05 22:30 UTC (permalink / raw)
  To: Magnus Henoch; +Cc: 8055

Magnus Henoch <magnus.henoch@gmail.com> writes:

> Right, nnmaildir--article-set-flags needs to be defined below the
> nnmaildir--art defstruct.  (Spending too much time inside emacs
> recompiling things incrementally can be a bad thing...)
> diff --git a/lisp/nnmaildir.el b/lisp/nnmaildir.el
> index caf2820..c5df510 100644

Thanks; applied.

-- 
(domestic pets only, the antidote for overdose, milk.)
  http://lars.ingebrigtsen.no  *  Lars Magne Ingebrigtsen





^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2012-09-05 22:30 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-16 14:24 bug#8055: 24.0.50; [nnmaildir/Gnus] please support in-filename Maildir flags Luca Capello
2011-06-29 23:34 ` Lars Magne Ingebrigtsen
2011-06-29 23:47   ` Glenn Morris
2011-06-29 23:53     ` Lars Magne Ingebrigtsen
2011-06-30 19:27       ` Stefan Monnier
2011-06-30 19:53         ` Lars Magne Ingebrigtsen
2011-06-30 21:36           ` Stefan Monnier
2011-07-06 13:36   ` Luca Capello
2012-08-11 18:25 ` bug#8055: Patch for handling Maildir flags in nnmaildir Magnus Henoch
2012-09-05 12:57   ` Lars Ingebrigtsen
2012-09-05 13:01     ` Lars Ingebrigtsen
2012-09-05 18:12       ` Magnus Henoch
2012-09-05 22:30         ` Lars Ingebrigtsen
2012-08-26  2:49 ` bug#8055: Review of Bug#8055 patch Chong Yidong
2012-09-03 16:09   ` Lars Ingebrigtsen
     [not found]   ` <87r4qj2imn.fsf@gnus.org>
2012-09-04  6:50     ` Zweimueller Wolfgang
     [not found]     ` <w7s7gsae0yr.fsf@salk.at>
2012-09-05  8:17       ` Magnus Henoch
2012-09-05 10:33         ` Zweimueller Wolfgang
     [not found] <mailman.14.1297867010.18127.bug-gnu-emacs@gnu.org>
2011-02-16 19:29 ` bug#8055: 24.0.50; [nnmaildir/Gnus] please support in-filename Maildir flags Ted Zlatanov

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).