emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [bug] in capture
@ 2018-05-15 17:26 Thomas Holst
  2018-05-16 19:55 ` Nicolas Goaziou
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Holst @ 2018-05-15 17:26 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1379 bytes --]

Hi,

I encountered a bug in cature (so I think).

I have among other the following template:

#+begin_src emacs-lisp
   ("hr" "Rechnung erfassen" table-line
    (file+function "~/git/org-priv/Univ_Beih.org" 
th:capure-find-open-vers-regn)
    "| # | %^u | %^{Arzt/Apotheke} | %^{für wen|Lida|Oleg|Victor|Simon} 
| %^{Betrag} | %^u | | [[file:%c][link Beleg]] |"
    :table-line-pos "III-1" :immediate-finish t)
#+end_src

With org-mode from git I get an error when using this template:

: condition-case: Capture template ‘hr’: integer-or-marker-p

With git bisect I found that:

ab53ee2c3d3ad8a090823c5f0f22dfd626605b3c is the first bad commit
commit ab53ee2c3d3ad8a090823c5f0f22dfd626605b3c
Author: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date:   Mon Apr 30 00:52:57 2018 +0200

     org-capture: Fix capturing in a table

     * lisp/org-capture.el (org-capture-place-table-line): Rewrite function.
     * testing/lisp/test-org-capture.el (test-org-capture/table-line): New
       test.

:040000 040000 900f436884b24172403ede46422a853f7b4a497c 
cbb50728eaae22ab234cab05dcda5b53050395df M    lisp
:040000 040000 fd8fb9ee8fb1cf0ea3dd4694682932e4c3311a78 
f6abcbceb630e8e704bf8b9c3d41ad0d029a5725 M    testing

Prior to this commit everything is fine.

Was there a change in the syntax I missed?

Thanks for looking into this.

--
   Thomas



[-- Attachment #2: Type: text/html, Size: 2429 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [bug] in capture
  2018-05-15 17:26 [bug] in capture Thomas Holst
@ 2018-05-16 19:55 ` Nicolas Goaziou
  2018-05-17 17:17   ` Thomas Holst
  0 siblings, 1 reply; 5+ messages in thread
From: Nicolas Goaziou @ 2018-05-16 19:55 UTC (permalink / raw)
  To: Thomas Holst; +Cc: emacs-orgmode

Hello,

Thomas Holst <thomas_holst@gmx.de> writes:

> I have among other the following template:
>
> #+begin_src emacs-lisp
>   ("hr" "Rechnung erfassen" table-line
>    (file+function "~/git/org-priv/Univ_Beih.org" 
> th:capure-find-open-vers-regn)
>    "| # | %^u | %^{Arzt/Apotheke} | %^{fr wen|Lida|Oleg|Victor|Simon} 
> | %^{Betrag} | %^u | | [[file:%c][link Beleg]] |"
>    :table-line-pos "III-1" :immediate-finish t)
> #+end_src
>
> With org-mode from git I get an error when using this template:
>
> : condition-case: Capture template ‘hr’: integer-or-marker-p

I have too little information to reproduce the problem.

Could you provide a minimal example, i.e., no custom function like
`th:capure-find-open-vers-regn' and a minimal document where this table
line is going to be inserted.

Also, I would need the backtrace.

Thank you.

> Was there a change in the syntax I missed?

No, there wasn't.

Regards,

-- 
Nicolas Goaziou

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [bug] in capture
  2018-05-16 19:55 ` Nicolas Goaziou
@ 2018-05-17 17:17   ` Thomas Holst
  2018-05-17 21:01     ` Nicolas Goaziou
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Holst @ 2018-05-17 17:17 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 9784 bytes --]

Hi Nicolas,

thank you for looking into this.

To reproduce the error I have to use file+function target. There is no 
error if I use file+headline target.

Here is an ECM:

#+begin_src org
* Setup

#+begin_src emacs-lisp
   (setq org-capture-template nil)

   (setq
    org-capture-templates
    '(("x" "Testing" table-line (file+function 
"~/tmp/capture-bug/ecm.org" th:test-capture)
     "|  |  | %^{Arzt/Apotheke} |"
     :table-line-pos "III-1" :immediate-finish t)))

   (defun th:test-capture ()
     "Sets point to headline"
     (interactive)
     (goto-char (point-min))
     (org-speed-move-safe (quote org-next-visible-heading)))
#+end_src

* testing capture
|---+-----------------+------|
| ! | Datum           | Arzt |
|---+-----------------+------|
|   |                 |      |
|---+-----------------+------|
| # |                 |      |
|---+-----------------+------|
#+end_src

The function "th:test-capture" sets point to beginning of headline 
"testing capture".

I experimented with several point positions (end of the headline, line 
below headline). But none worked. The error stayed the same.

And here is the backtrace:
Debugger entered--Lisp error: (error "Capture template ‘hr’: 
integer-or-marker-p")
   signal(error ("Capture template ‘hr’: integer-or-marker-p"))
   error("Capture template `%s': %s" "hr" integer-or-marker-p)
   (condition-case error (org-capture-place-template (eq (car 
(org-capture-get :target)) (quote function))) ((error quit) (if (and 
(buffer-base-buffer (current-buffer)) (string-prefix-p "CAPTURE-" 
(buffer-name))) (kill-buffer (current-buffer))) 
(set-window-configuration (org-capture-get :return-to-wconf)) (error 
"Capture template `%s': %s" (org-capture-get :key) (nth 1 error))))
   (if (equal goto 0) (org-capture-insert-template-here) (condition-case 
error (org-capture-place-template (eq (car (org-capture-get :target)) 
(quote function))) ((error quit) (if (and (buffer-base-buffer 
(current-buffer)) (string-prefix-p "CAPTURE-" (buffer-name))) 
(kill-buffer (current-buffer))) (set-window-configuration 
(org-capture-get :return-to-wconf)) (error "Capture template `%s': %s" 
(org-capture-get :key) (nth 1 error)))) (if (and (derived-mode-p (quote 
org-mode)) (org-capture-get :clock-in)) (condition-case nil (progn (if 
(org-clock-is-active) (org-capture-put :interrupted-clock (copy-marker 
org-clock-marker))) (org-clock-in) (set (make-local-variable (quote 
org-capture-clock-was-started)) t)) (error "Could not start the clock in 
this capture buffer"))) (if (org-capture-get :immediate-finish) 
(org-capture-finalize)))
   (cond ((equal entry "C") (customize-variable (quote 
org-capture-templates))) ((equal entry "q") (user-error "Abort")) (t 
(org-capture-set-plist entry) (org-capture-get-template) 
(org-capture-put :original-buffer orig-buf :original-file (or 
(buffer-file-name orig-buf) (and (featurep (quote dired)) (car (rassq 
orig-buf dired-buffers)))) :original-file-nondirectory (and 
(buffer-file-name orig-buf) (file-name-nondirectory (buffer-file-name 
orig-buf))) :annotation annotation :initial initial :return-to-wconf 
(current-window-configuration) :default-time (or 
org-overriding-default-time (org-current-time))) 
(org-capture-set-target-location) (condition-case error (org-capture-put 
:template (org-capture-fill-template)) ((error quit) (if (get-buffer 
"*Capture*") (kill-buffer "*Capture*")) (error "Capture abort: %s" 
error))) (setq org-capture-clock-keep (org-capture-get :clock-keep)) (if 
(equal goto 0) (org-capture-insert-template-here) (condition-case error 
(org-capture-place-template (eq (car (org-capture-get :target)) (quote 
function))) ((error quit) (if (and (buffer-base-buffer ...) 
(string-prefix-p "CAPTURE-" ...)) (kill-buffer (current-buffer))) 
(set-window-configuration (org-capture-get :return-to-wconf)) (error 
"Capture template `%s': %s" (org-capture-get :key) (nth 1 error)))) (if 
(and (derived-mode-p (quote org-mode)) (org-capture-get :clock-in)) 
(condition-case nil (progn (if (org-clock-is-active) (org-capture-put 
:interrupted-clock ...)) (org-clock-in) (set (make-local-variable ...) 
t)) (error "Could not start the clock in this capture buffer"))) (if 
(org-capture-get :immediate-finish) (org-capture-finalize)))))
   (let* ((orig-buf (current-buffer)) (annotation (if (and (boundp 
(quote org-capture-link-is-already-stored)) 
org-capture-link-is-already-stored) (plist-get org-store-link-plist 
:annotation) (condition-case nil (progn (org-store-link nil)) (error 
nil)))) (entry (or org-capture-entry (org-capture-select-template 
keys))) initial) (setq initial (or org-capture-initial (and 
(org-region-active-p) (buffer-substring (point) (mark))))) (if (stringp 
initial) (progn (remove-text-properties 0 (length initial) (quote 
(read-only t)) initial))) (if (stringp annotation) (progn 
(remove-text-properties 0 (length annotation) (quote (read-only t)) 
annotation))) (cond ((equal entry "C") (customize-variable (quote 
org-capture-templates))) ((equal entry "q") (user-error "Abort")) (t 
(org-capture-set-plist entry) (org-capture-get-template) 
(org-capture-put :original-buffer orig-buf :original-file (or 
(buffer-file-name orig-buf) (and (featurep (quote dired)) (car (rassq 
orig-buf dired-buffers)))) :original-file-nondirectory (and 
(buffer-file-name orig-buf) (file-name-nondirectory (buffer-file-name 
orig-buf))) :annotation annotation :initial initial :return-to-wconf 
(current-window-configuration) :default-time (or 
org-overriding-default-time (org-current-time))) 
(org-capture-set-target-location) (condition-case error (org-capture-put 
:template (org-capture-fill-template)) ((error quit) (if (get-buffer 
"*Capture*") (kill-buffer "*Capture*")) (error "Capture abort: %s" 
error))) (setq org-capture-clock-keep (org-capture-get :clock-keep)) (if 
(equal goto 0) (org-capture-insert-template-here) (condition-case error 
(org-capture-place-template (eq (car ...) (quote function))) ((error 
quit) (if (and ... ...) (kill-buffer ...)) (set-window-configuration 
(org-capture-get :return-to-wconf)) (error "Capture template `%s': %s" 
(org-capture-get :key) (nth 1 error)))) (if (and (derived-mode-p (quote 
org-mode)) (org-capture-get :clock-in)) (condition-case nil (progn (if 
... ...) (org-clock-in) (set ... t)) (error "Could not start the clock 
in this capture buffer"))) (if (org-capture-get :immediate-finish) 
(org-capture-finalize))))))
   (cond ((equal goto (quote (4))) (org-capture-goto-target)) ((equal 
goto (quote (16))) (org-capture-goto-last-stored)) (t (let* ((orig-buf 
(current-buffer)) (annotation (if (and (boundp ...) 
org-capture-link-is-already-stored) (plist-get org-store-link-plist 
:annotation) (condition-case nil (progn ...) (error nil)))) (entry (or 
org-capture-entry (org-capture-select-template keys))) initial) (setq 
initial (or org-capture-initial (and (org-region-active-p) 
(buffer-substring (point) (mark))))) (if (stringp initial) (progn 
(remove-text-properties 0 (length initial) (quote (read-only t)) 
initial))) (if (stringp annotation) (progn (remove-text-properties 0 
(length annotation) (quote (read-only t)) annotation))) (cond ((equal 
entry "C") (customize-variable (quote org-capture-templates))) ((equal 
entry "q") (user-error "Abort")) (t (org-capture-set-plist entry) 
(org-capture-get-template) (org-capture-put :original-buffer orig-buf 
:original-file (or (buffer-file-name orig-buf) (and ... ...)) 
:original-file-nondirectory (and (buffer-file-name orig-buf) 
(file-name-nondirectory ...)) :annotation annotation :initial initial 
:return-to-wconf (current-window-configuration) :default-time (or 
org-overriding-default-time (org-current-time))) 
(org-capture-set-target-location) (condition-case error (org-capture-put 
:template (org-capture-fill-template)) ((error quit) (if ... ...) (error 
"Capture abort: %s" error))) (setq org-capture-clock-keep 
(org-capture-get :clock-keep)) (if (equal goto 0) 
(org-capture-insert-template-here) (condition-case error 
(org-capture-place-template ...) (... ... ... ...)) (if (and ... ...) 
(condition-case nil ... ...)) (if (org-capture-get :immediate-finish) 
(org-capture-finalize))))))))
   org-capture(nil)
   funcall-interactively(org-capture nil)
   #<subr call-interactively>(org-capture nil nil)
   apply(#<subr call-interactively> org-capture (nil nil))
   call-interactively@ido-cr+-record-current-command(#<subr 
call-interactively> org-capture nil nil)
   apply(call-interactively@ido-cr+-record-current-command #<subr 
call-interactively> (org-capture nil nil))
   call-interactively(org-capture nil nil)
   command-execute(org-capture)

-- 
   Thomas


Am 16.05.2018 um 21:55 schrieb Nicolas Goaziou:
> Hello,
>
> Thomas Holst <thomas_holst@gmx.de> writes:
>
>> I have among other the following template:
>>
>> #+begin_src emacs-lisp
>>    ("hr" "Rechnung erfassen" table-line
>>   � (file+function "~/git/org-priv/Univ_Beih.org"
>> th:capure-find-open-vers-regn)
>>   � "| # | %^u | %^{Arzt/Apotheke} | %^{fr wen|Lida|Oleg|Victor|Simon}
>> | %^{Betrag} | %^u | | [[file:%c][link Beleg]] |"
>>   � :table-line-pos "III-1" :immediate-finish t)
>> #+end_src
>>
>> With org-mode from git I get an error when using this template:
>>
>> : condition-case: Capture template ‘hr’: integer-or-marker-p
> I have too little information to reproduce the problem.
>
> Could you provide a minimal example, i.e., no custom function like
> `th:capure-find-open-vers-regn' and a minimal document where this table
> line is going to be inserted.
>
> Also, I would need the backtrace.
>
> Thank you.
>
>> Was there a change in the syntax I missed?
> No, there wasn't.
>
> Regards,
>


[-- Attachment #2: Type: text/html, Size: 12993 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [bug] in capture
  2018-05-17 17:17   ` Thomas Holst
@ 2018-05-17 21:01     ` Nicolas Goaziou
  2018-05-21 20:23       ` Thomas Holst
  0 siblings, 1 reply; 5+ messages in thread
From: Nicolas Goaziou @ 2018-05-17 21:01 UTC (permalink / raw)
  To: Thomas Holst; +Cc: emacs-orgmode

Hello,

Thomas Holst <thomas_holst@gmx.de> writes:

> Hi Nicolas,
>
> thank you for looking into this.
>
> To reproduce the error I have to use file+function target. There is no 
> error if I use file+headline target.
>
> Here is an ECM:
>
> #+begin_src org
> * Setup
>
> #+begin_src emacs-lisp
>   (setq org-capture-template nil)
>
>   (setq
>   org-capture-templates
>   '(("x" "Testing" table-line (file+function 
> "~/tmp/capture-bug/ecm.org" th:test-capture)
>   "| | | %^{Arzt/Apotheke} |"
>   :table-line-pos "III-1" :immediate-finish t)))
>
>   (defun th:test-capture ()
>   "Sets point to headline"
>   (interactive)
>   (goto-char (point-min))
>   (org-speed-move-safe (quote org-next-visible-heading)))
> #+end_src
>
> * testing capture
> |---+-----------------+------|
> | ! | Datum           | Arzt |
> |---+-----------------+------|
> |   |                 |      |
> |---+-----------------+------|
> | # |                 |      |
> |---+-----------------+------|
> #+end_src
>
> The function "th:test-capture" sets point to beginning of headline 
> "testing capture".
>
> I experimented with several point positions (end of the headline, line 
> below headline). But none worked. The error stayed the same.
>
> And here is the backtrace:
> Debugger entered--Lisp error: (error "Capture template ‘hr’: 
> integer-or-marker-p")

Fixed. Thank you.

Regards,

-- 
Nicolas Goaziou                                                0x80A93738

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [bug] in capture
  2018-05-17 21:01     ` Nicolas Goaziou
@ 2018-05-21 20:23       ` Thomas Holst
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Holst @ 2018-05-21 20:23 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1663 bytes --]

Hello Nicolas,

thank you for fixing this. I can confirm that my capture template is 
working again.

-- 
   Thomas


Am 17.05.2018 um 23:01 schrieb Nicolas Goaziou:
> Hello,
>
> Thomas Holst <thomas_holst@gmx.de> writes:
>
>> Hi Nicolas,
>>
>> thank you for looking into this.
>>
>> To reproduce the error I have to use file+function target. There is no
>> error if I use file+headline target.
>>
>> Here is an ECM:
>>
>> #+begin_src org
>> * Setup
>>
>> #+begin_src emacs-lisp
>>    (setq org-capture-template nil)
>>
>>    (setq
>>    org-capture-templates
>>    '(("x" "Testing" table-line (file+function
>> "~/tmp/capture-bug/ecm.org" th:test-capture)
>>    "| | | %^{Arzt/Apotheke} |"
>>    :table-line-pos "III-1" :immediate-finish t)))
>>
>>    (defun th:test-capture ()
>>    "Sets point to headline"
>>    (interactive)
>>    (goto-char (point-min))
>>    (org-speed-move-safe (quote org-next-visible-heading)))
>> #+end_src
>>
>> * testing capture
>> |---+-----------------+------|
>> | ! | Datum           | Arzt |
>> |---+-----------------+------|
>> |   |                 |      |
>> |---+-----------------+------|
>> | # |                 |      |
>> |---+-----------------+------|
>> #+end_src
>>
>> The function "th:test-capture" sets point to beginning of headline
>> "testing capture".
>>
>> I experimented with several point positions (end of the headline, line
>> below headline). But none worked. The error stayed the same.
>>
>> And here is the backtrace:
>> Debugger entered--Lisp error: (error "Capture template ‘hr’:
>> integer-or-marker-p")
> Fixed. Thank you.
>
> Regards,
>


[-- Attachment #2: Type: text/html, Size: 2244 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-05-21 20:23 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-15 17:26 [bug] in capture Thomas Holst
2018-05-16 19:55 ` Nicolas Goaziou
2018-05-17 17:17   ` Thomas Holst
2018-05-17 21:01     ` Nicolas Goaziou
2018-05-21 20:23       ` Thomas Holst

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).