emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Nick Dokos <nicholas.dokos@hp.com>
To: Xin Shi <shixin111@gmail.com>
Cc: emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: Error when push fils in MobileOrg
Date: Fri, 04 Dec 2009 18:25:21 -0500	[thread overview]
Message-ID: <10183.1259969121@alphaville.usa.hp.com> (raw)
In-Reply-To: Message from Xin Shi <shixin111@gmail.com> of "Fri, 04 Dec 2009 17:38:57 EST." <5236d6f90912041438t70c8cf42hc8b7337cb8028845@mail.gmail.com>

Xin Shi <shixin111@gmail.com> wrote:


> Debugger entered--Lisp error: (wrong-type-argument listp "TODO")
>   cdr("TODO")
>   (mapcar (lambda (x) (if ... ... x)) (cdr entry))
>   (setq kwds (mapcar (lambda ... ...) (cdr entry)))
>   (while (setq entry (pop def-todo)) (insert "#+READONLY\n") (setq kwds
> (mapcar ... ...)) (insert "#+TODO: " (mapconcat ... kwds " ") "\n") (setq
> dwds (member "|" kwds) twds (org-delete-all dwds kwds) todo-kwds
> (org-delete-all twds todo-kwds) done-kwds (org-delete-all dwds done-kwds)))
>   (save-current-buffer (set-buffer temp-buffer) (while (setq entry ...)
> (insert "#+READONLY\n") (setq kwds ...) (insert "#+TODO: " ... "\n") (setq
> dwds ... twds ... todo-kwds ... done-kwds ...)) (when (or todo-kwds
> done-kwds) (insert "#+TODO: " ... " | " ... "\n")) (setq def-tags (mapcar
> ... def-tags)) (setq def-tags (delq nil def-tags)) (setq tags
> (org-delete-all def-tags tags)) (setq tags (sort tags ...)) (setq tags
> (append def-tags tags nil)) (insert "#+TAGS: " (mapconcat ... tags " ")
> "\n") (insert "#+DRAWERS: " (mapconcat ... drawers " ") "\n") (insert
> "#+ALLPRIORITIES: A B C" "\n") (when (file-exists-p ...) (insert "* [[file:
> agendas.org][Agenda Views]]\n")) (while (setq entry ...) (setq file ...
> link-name ...) (insert ...)) (push (cons org-mobile-index-file ...)
> org-mobile-checksum-files))
>   (with-current-buffer temp-buffer (while (setq entry ...) (insert
> "#+READONLY\n") (setq kwds ...) (insert "#+TODO: " ... "\n") (setq dwds ...
> twds ... todo-kwds ... done-kwds ...)) (when (or todo-kwds done-kwds)
> (insert "#+TODO: " ... " | " ... "\n")) (setq def-tags (mapcar ...
> def-tags)) (setq def-tags (delq nil def-tags)) (setq tags (org-delete-all
> def-tags tags)) (setq tags (sort tags ...)) (setq tags (append def-tags tags
> nil)) (insert "#+TAGS: " (mapconcat ... tags " ") "\n") (insert "#+DRAWERS:
> " (mapconcat ... drawers " ") "\n") (insert "#+ALLPRIORITIES: A B C" "\n")
> (when (file-exists-p ...) (insert "* [[file:agendas.org][Agenda Views]]\n"))
> (while (setq entry ...) (setq file ... link-name ...) (insert ...)) (push
> (cons org-mobile-index-file ...) org-mobile-checksum-files))
>   (prog1 (with-current-buffer temp-buffer (while ... ... ... ... ...) (when
> ... ...) (setq def-tags ...) (setq def-tags ...) (setq tags ...) (setq tags
> ...) (setq tags ...) (insert "#+TAGS: " ... "\n") (insert "#+DRAWERS: " ...
> "\n") (insert "#+ALLPRIORITIES: A B C" "\n") (when ... ...) (while ... ...
> ...) (push ... org-mobile-checksum-files)) (with-current-buffer temp-buffer
> (write-region nil nil temp-file nil 0)))
>   (unwind-protect (prog1 (with-current-buffer temp-buffer ... ... ... ...
> ... ... ... ... ... ... ... ... ...) (with-current-buffer temp-buffer ...))
> (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
>   (let ((temp-file ...) (temp-buffer ...)) (unwind-protect (prog1 ... ...)
> (and ... ...)))
>   (with-temp-file (expand-file-name org-mobile-index-file
> org-mobile-directory) (while (setq entry ...) (insert "#+READONLY\n") (setq
> kwds ...) (insert "#+TODO: " ... "\n") (setq dwds ... twds ... todo-kwds ...
> done-kwds ...)) (when (or todo-kwds done-kwds) (insert "#+TODO: " ... " | "
> ... "\n")) (setq def-tags (mapcar ... def-tags)) (setq def-tags (delq nil
> def-tags)) (setq tags (org-delete-all def-tags tags)) (setq tags (sort tags
> ...)) (setq tags (append def-tags tags nil)) (insert "#+TAGS: " (mapconcat
> ... tags " ") "\n") (insert "#+DRAWERS: " (mapconcat ... drawers " ") "\n")
> (insert "#+ALLPRIORITIES: A B C" "\n") (when (file-exists-p ...) (insert "*
> [[file:agendas.org][Agenda Views]]\n")) (while (setq entry ...) (setq file
> ... link-name ...) (insert ...)) (push (cons org-mobile-index-file ...)
> org-mobile-checksum-files))
>   (let ((files-alist ...) (def-todo ...) (def-tags ...) file link-name
> todo-kwds done-kwds tags drawers entry kwds dwds twds)
> (org-prepare-agenda-buffers (mapcar ... files-alist)) (setq done-kwds
> (org-uniquify org-done-keywords-for-agenda)) (setq todo-kwds (org-delete-all
> done-kwds ...)) (setq drawers (org-uniquify org-drawers-for-agenda)) (setq
> tags (org-uniquify ...)) (with-temp-file (expand-file-name
> org-mobile-index-file org-mobile-directory) (while ... ... ... ... ...)
> (when ... ...) (setq def-tags ...) (setq def-tags ...) (setq tags ...) (setq
> tags ...) (setq tags ...) (insert "#+TAGS: " ... "\n") (insert "#+DRAWERS: "
> ... "\n") (insert "#+ALLPRIORITIES: A B C" "\n") (when ... ...) (while ...
> ... ...) (push ... org-mobile-checksum-files)))
>   org-mobile-create-index-file()
>   (save-window-excursion (org-mobile-check-setup)
> (org-mobile-prepare-file-lists) (run-hooks (quote org-mobile-pre-push-hook))
> (message "Creating agendas...") (let (...) (org-mobile-create-sumo-agenda))
> (message "Creating agendas...done") (org-save-all-org-buffers) (message
> "Copying files...") (org-mobile-copy-agenda-files) (message "Writing index
> file...") (org-mobile-create-index-file) (message "Writing checksums...")
> (org-mobile-write-checksums) (run-hooks (quote org-mobile-post-push-hook)))
>   (save-excursion (save-window-excursion (org-mobile-check-setup)
> (org-mobile-prepare-file-lists) (run-hooks ...) (message "Creating
> agendas...") (let ... ...) (message "Creating agendas...done")
> (org-save-all-org-buffers) (message "Copying files...")
> (org-mobile-copy-agenda-files) (message "Writing index file...")
> (org-mobile-create-index-file) (message "Writing checksums...")
> (org-mobile-write-checksums) (run-hooks ...)))
>   (let ((org-agenda-buffer-name "*SUMO*") (org-agenda-filter
> org-agenda-filter) (org-agenda-redo-command org-agenda-redo-command))
> (save-excursion (save-window-excursion ... ... ... ... ... ... ... ... ...
> ... ... ... ... ...)))
>   (let ((a-buffer ...)) (let (... ... ...) (save-excursion ...))
> (redraw-display) (when (and a-buffer ...) (if ... ... ...)))
>   org-mobile-push()
>   call-interactively(org-mobile-push nil nil)
> 

From the stacktrace, you can see that the problem arises in
org-mobile-create-index-file, more specifically the following code in
org-mobile.el (around line 349):

,----
|     ...
|     (with-temp-file
| 	(expand-file-name org-mobile-index-file org-mobile-directory)
|       (while (setq entry (pop def-todo))
| 	(insert "#+READONLY\n")
| 	(setq kwds (mapcar (lambda (x) (if (string-match "(" x)
| 					   (substring x 0 (match-beginning 0))
| 					 x))
| 			   (cdr entry)))   <<<<<<<<<<<<<<<<<<<<< BOOM!
| 	(insert "#+TODO: " (mapconcat 'identity kwds " ") "\n")
`----

entry seems to be the string "TODO", rather than a list or dotted pair,
so cdr blows up on it. Since entry gets its value by looping over
def-todo and since def-todo is initialized from (the default value of)
org-todo-keywords, I suspect the latter is malformed. So do C-h v
org-todo-keywords and tell us what it is. If you are initializing it
somewhere in your .emacs, delete the initialization and see whether that
fixes it. Note that it's the default value that's important not any buffer-local
setting. In my case, this says:

,----
| org-todo-keywords is a variable defined in `org.el'.
| Its value is 
| ((sequence "TODO" "DONE"))
`----


The debugging advice I gave to Nate in an email earlier today also
applies here: add a (debug) call and when you are dropped into the
debugger, examine the state - e.g. change the above code to

,----
|     ...
|     (with-temp-file
| 	(expand-file-name org-mobile-index-file org-mobile-directory)
|       (while (setq entry (pop def-todo))
| 	(insert "#+READONLY\n")
|       (debug)
| 	(setq kwds (mapcar (lambda (x) (if (string-match "(" x)
| 					   (substring x 0 (match-beginning 0))
| 					 x))
| 			   (cdr entry)))
| 	(insert "#+TODO: " (mapconcat 'identity kwds " ") "\n")
`----

and save the file.

M-x load-file <RET> /path/to/org-mobile.el <RET> to pick up the modified
definition

and then call org-mobile-push. When the debugger is entered, say

e entry <RET>
e def-todo <RET>

to examine the values of these symbols.

HTH,
Nick

  reply	other threads:[~2009-12-04 23:26 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-03 21:56 Error when push fils in MobileOrg Xin Shi
2009-12-03 22:16 ` Nick Dokos
2009-12-04 22:38   ` Xin Shi
2009-12-04 23:25     ` Nick Dokos [this message]
2009-12-05  4:34       ` Xin Shi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=10183.1259969121@alphaville.usa.hp.com \
    --to=nicholas.dokos@hp.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=shixin111@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).