emacs-orgmode
[Top][All Lists]
Advanced

[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
>>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]