[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] % (org-agenda-bulk-mark-regexp) in agenda view problems
From: |
netty hacky |
Subject: |
Re: [O] % (org-agenda-bulk-mark-regexp) in agenda view problems |
Date: |
Sun, 2 Oct 2011 02:26:14 -0700 |
Sorry, didn't realized I wasn't sending email in plain text.
On Sat, Oct 1, 2011 at 3:14 PM, netty hacky <address@hidden> wrote:
>
> Hi Bastien,
>
> I found a third problem of org-agenda-bulk-mark-regexp, it does not work well
> on daily/weekly agenda view. Basically it chokes on lines that is not a
> regular headline, like date labels, dairy entries and grid lines.
>
> So to show I am not merely a leech on this list, I come up with my version
> here, most of the ugly code are to deal with the way org-agenda-bulk-mark
> works now (e.g., returning nil when successful):
>
> (defun org-agenda-bulk-mark-regexp (regexp)
> "Mark entries match REGEXP."
> (interactive "sMark entries matching regexp: ")
> (save-excursion
> (goto-char (point-min))
> (let ((entries-marked 0))
> (while (not (eobp))
> (unless (and
> (not (get-char-property (point) 'invisible))
> (not (org-get-at-bol 'org-agenda-diary-link))
> (org-get-at-bol 'org-hd-marker)
> (let (txt-property)
> (setq txt-property (get-char-property (point) 'txt))
> (string-match regexp txt-property))
> (not (call-interactively 'org-agenda-bulk-mark))
> (setq entries-marked (+ entries-marked 1)))
> (beginning-of-line 2)))
> (if (zerop entries-marked)
> (message "No entry matching this regexp.")
> (message "%d entries marked for bulk action" entries-marked)))))
>
> Thanks,
> Net
>
> On Sat, Oct 1, 2011 at 12:38 AM, netty hacky <address@hidden> wrote:
>>
>> Hi Bastien,
>>
>> I'm having two problems with the % command (org-agenda-bulk-mark-regexp) in
>> Org-mode agenda view.
>>
>> 1. If I use "." as the search string, I get "Wrong type argument:
>> number-or-marker-p, nil". And my workaround is to change the line "(let
>> (entries-marked)" in org-agenda.el to "(let ((entries-marked 0))".
>>
>> 2. If I use ".*" as the search string, I get "Wrong type argument: stringp,
>> nil". After some edebugging, I found the reason is that in
>> org-agenda-bulk-mark-regexp, re-search-forward moved the point to the end of
>> the line (since ".*" matches the whole line), causing (get-text-property
>> (point) 'txt) to return nil, in turn caused string-match to throw the error.
>> I think this may happen to other regexps, as long as the strings matched
>> include the last character in the line. I'm new to Emacs Lisp so I'm not
>> sure how to fix this one.
>>
>> Wondering why it seems only me having these two problems.
>>
>> I am using MacPorts' Emacs and Org-mode:
>> Emacs : GNU Emacs 23.3.1 (x86_64-apple-darwin10.8.0)
>> Package: Org-mode version 7.7
>>
>> Thanks,
>> Net
>>
>