Hi! For Memacs[1], I'd like to come up with a very fast Org-mode method to open files independent of their location on your disk. I accomplished everything necessary so far. However, I've got issues writing an elisp function for extracting a file and sending it to a function that calls the operating system app associated. My elisp knowledge is still too bad :-(
What I've got is a string (from the lookup) which contains: (1) nothing (2) one line like "** <2008-06-17 21:43> [[file:/home/user/dir/2008-06-17 description of file.odp][2008-06-17 description of file.odp]]" (3) multiple lines like (2) but with different files and links I'd like to get a "Sorry" message for (1). Easy, if only I know how to count lines in strings (as opposed to buffers). For (2) I'd like to call my-open-in-external-app(string). For (3), I'd like to use the first line just as in (2) as a starter. I do have some ideas on gracious "error-recovering" on this one but that's maybe too complicated to code for now: getting rid of substrings delimited by not-'a-zA-Z0-9' from the end of the link until a match is found; message in case there is no unique match which could be found this way. Could you please help me here? It'd help all users of the file index module of Memacs. The mini fragment I have so far is following but the regex seems to be broken: #+BEGIN_SRC elisp (let ( (result (replace-regexp-in-string "\r?\n$" "" (shell-command-to-string (concat "grep " "2008-06-17" " ~/org/memacs/files.org_archive");; hard coded stuff for testing purposes ) ) ) ) (message (concat "result -> " result)) (re-search-forward " \[\[.+\]\[" nil t 1) (let ( (firstlink ((match-string 1))) ) (message (concat "first link -> " firstlink)) ) ) #+END_SRC [1] https://github.com/novoid/Memacs -- mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML to Org-mode: > get Memacs from https://github.com/novoid/Memacs < https://github.com/novoid/extract_pdf_annotations_to_orgmode + more on github