Hi Bastien,
I'm willing to sign the FSF copyright papers, provided it isn't too big of a hassle :-). What do I need to do?
The problem that the other part of the patch solves is as follows:
org-batch-store-agenda-views writes all agendas (according to some criteria) to disk.
To do this, it first generates all those agendas in a temporary buffer, which is killed at the end.
This is done in a special environment, so as to not change the currently open agenda buffer (if there is one).
The process is not hermetic - the plist of org-agenda-category-filter can get modified while generating the temporary agendas (when generating agendas with a category filter).
If indeed modified, then at the end of the process, a user sees a filtered agenda buffer even when starting out from an unfiltered one.
The patch addresses this by first saving the plist of the org-agenda-category-filter variable, then executing the regular functionality of org-batch-store-agenda-views, and finally restoring the plist of org-agenda-category-filter variable.
In case something falls through with the FSF papers, I think this should be enough to implement a similar fix.
Thanks,
Kosta