Nicolas Goaziou <n.goaz...@gmail.com> writes: > Hello, > > Eric Abrahamsen <e...@ericabrahamsen.net> writes: > >> I've attached a minimum org file that shows what I'm trying to do: >> essentially to attach a hook to the export process that ends up calling >> org-map-entries to make alterations to the file just before it's >> exported. >> >> As I've got it now, the hook does change the org buffer, but those >> changes are *not* reflected in the exported output. I can only guess >> that somehow the export process is able to continue on before the >> org-map-entries results are returned? Doesn't seem likely, but... >> >> This is actually kind of the opposite of what I'd like: to have the >> changes *only* reflected in the export, and leave the original buffer >> unchanged. On the other hand, I can see what thought and care has gone >> into setting up a clone buffer for export (and I do need to rely on >> buffer-local variables), so maybe an (undo) is my best solution for >> returning the buffer to its pre-export state. >> >> But I would like the changes to show up in the exported file! > > The problem is not directly related to the export framework, but to its > relationship with `org-map-entries'. > > If you use the following function: > > (defun before-export-test (backend) > ;; (org-map-entries 'test-map "TODO=\"TODO\"" 'file) > (while (re-search-forward "^\\*+ TODO" nil t) > (test-map))) > > it should work. > > I don't know why `org-map-entries' behaves badly with export. Meanwhile, > I suggest to not use this function for export hooks.
That'll work! Thanks for looking at this. E