From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xin Shi Subject: Re: Error when push fils in MobileOrg Date: Fri, 4 Dec 2009 23:34:00 -0500 Message-ID: <5236d6f90912042034x434c8712j6124496a4943d33b@mail.gmail.com> References: <5236d6f90912031356i7c98c48ay8d4c9494f4b55ec5@mail.gmail.com> <16227.1259878615@gamaville.dokosmarshall.org> <5236d6f90912041438t70c8cf42hc8b7337cb8028845@mail.gmail.com> <10183.1259969121@alphaville.usa.hp.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0850739029==" Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NGmLS-0004P7-Uh for emacs-orgmode@gnu.org; Fri, 04 Dec 2009 23:34:11 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NGmLO-0004Mx-Fr for emacs-orgmode@gnu.org; Fri, 04 Dec 2009 23:34:10 -0500 Received: from [199.232.76.173] (port=41157 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NGmLO-0004Mg-6v for emacs-orgmode@gnu.org; Fri, 04 Dec 2009 23:34:06 -0500 Received: from mail-px0-f198.google.com ([209.85.216.198]:58232) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NGmLO-00043S-0O for emacs-orgmode@gnu.org; Fri, 04 Dec 2009 23:34:06 -0500 Received: by pxi36 with SMTP id 36so832280pxi.26 for ; Fri, 04 Dec 2009 20:34:04 -0800 (PST) In-Reply-To: <10183.1259969121@alphaville.usa.hp.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: nicholas.dokos@hp.com Cc: emacs-orgmode --===============0850739029== Content-Type: multipart/alternative; boundary=00504502b443c3cb880479f3bbe8 --00504502b443c3cb880479f3bbe8 Content-Type: text/plain; charset=ISO-8859-1 Hi Nick, Thanks for your detailed explanation! After deleting the set todo in my .emacs file, it's working now! Now, the remaining question for me is that the generated "agenda.org" file is empty even when there is agenda there. And I don't know if there is a way to display the agenda in the MobileOrg in the iphone/ipod touch. Xin On Fri, Dec 4, 2009 at 6:25 PM, Nick Dokos wrote: > Xin Shi 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 /path/to/org-mobile.el to pick up the modified > definition > > and then call org-mobile-push. When the debugger is entered, say > > e entry > e def-todo > > to examine the values of these symbols. > > HTH, > Nick > > --00504502b443c3cb880479f3bbe8 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi Nick,

Thanks for your detailed explanation! After deleting the se= t todo in my .emacs file, it's working now!

Now, the remaining = question for me is that the generated "a= genda.org" file is empty even when there is agenda there. And I do= n't know if there is a way to display the agenda in the MobileOrg in th= e iphone/ipod touch.

Xin



On Fri, Dec 4, 2009 at 6:= 25 PM, Nick Dokos <nicholas.dokos@hp.com> wrote:
Xin Shi <shixin= 111@gmail.com> wrote:


> Debugger entered--Lisp error: = (wrong-type-argument listp "TODO")
> =A0 cdr("TODO")
> =A0 (mapcar (lambda (x) (if ... ... x)) (cdr entry))
> =A0 (setq kwds (mapcar (lambda ... ...) (cdr entry)))
> =A0 (while (setq entry (pop def-todo)) (insert "#+READONLY\n"= ;) (setq kwds
> (mapcar ... ...)) (insert "#+TODO: " (mapconcat ... kwds &qu= ot; ") "\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-kw= ds)))
> =A0 (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][Agen= da Views]]\n")) (while (setq entry ...) (setq file ...
> link-name ...) (insert ...)) (push (cons org-mobile-index-file ...) > org-mobile-checksum-files))
> =A0 (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)<= br> > (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-tag= s tags
> nil)) (insert "#+TAGS: " (mapconcat ... tags " ") = "\n") (insert "#+DRAWERS:
> " (mapconcat ... drawers " ") "\n") (insert &= quot;#+ALLPRIORITIES: A B C" "\n")
> (when (file-exists-p ...) (insert "* [[file:agendas.org][Agenda Views]]\n"))
> (while (setq entry ...) (setq file ... link-name ...) (insert ...)) (p= ush
> (cons org-mobile-index-file ...) org-mobile-checksum-files))
> =A0 (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&qu= ot;) (when ... ...) (while ... ...
> ...) (push ... org-mobile-checksum-files)) (with-current-buffer temp-b= uffer
> (write-region nil nil temp-file nil 0)))
> =A0 (unwind-protect (prog1 (with-current-buffer temp-buffer ... ... ..= . ...
> ... ... ... ... ... ... ... ... ...) (with-current-buffer temp-buffer = ...))
> (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
> =A0 (let ((temp-file ...) (temp-buffer ...)) (unwind-protect (prog1 ..= . ...)
> (and ... ...)))
> =A0 (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: &= quot; ... " | "
> ... "\n")) (setq def-tags (mapcar ... def-tags)) (setq def-t= ags (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: &qu= ot; (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))
> =A0 (let ((files-alist ...) (def-todo ...) (def-tags ...) file link-na= me
> todo-kwds done-kwds tags drawers entry kwds dwds twds)
> (org-prepare-agenda-buffers (mapcar ... files-alist)) (setq done-kwds<= br> > (org-uniquify org-done-keywords-for-agenda)) (setq todo-kwds (org-dele= te-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&qu= ot;) (insert "#+DRAWERS: "
> ... "\n") (insert "#+ALLPRIORITIES: A B C" "\= n") (when ... ...) (while ...
> ... ...) (push ... org-mobile-checksum-files)))
> =A0 org-mobile-create-index-file()
> =A0 (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-creat= e-sumo-agenda))
> (message "Creating agendas...done") (org-save-all-org-buffer= s) (message
> "Copying files...") (org-mobile-copy-agenda-files) (message = "Writing index
> file...") (org-mobile-create-index-file) (message "Writing c= hecksums...")
> (org-mobile-write-checksums) (run-hooks (quote org-mobile-post-push-ho= ok)))
> =A0 (save-excursion (save-window-excursion (org-mobile-check-setup) > (org-mobile-prepare-file-lists) (run-hooks ...) (message "Creatin= g
> agendas...") (let ... ...) (message "Creating agendas...done= ")
> (org-save-all-org-buffers) (message "Copying files...")
> (org-mobile-copy-agenda-files) (message "Writing index file...&qu= ot;)
> (org-mobile-create-index-file) (message "Writing checksums...&quo= t;)
> (org-mobile-write-checksums) (run-hooks ...)))
> =A0 (let ((org-agenda-buffer-name "*SUMO*") (org-agenda-filt= er
> org-agenda-filter) (org-agenda-redo-command org-agenda-redo-command))<= br> > (save-excursion (save-window-excursion ... ... ... ... ... ... ... ...= ...
> ... ... ... ... ...)))
> =A0 (let ((a-buffer ...)) (let (... ... ...) (save-excursion ...))
> (redraw-display) (when (and a-buffer ...) (if ... ... ...)))
> =A0 org-mobile-push()
> =A0 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):

,----
| =A0 =A0 ...
| =A0 =A0 (with-temp-file
| =A0 =A0 =A0 (expand-file-name org-mobile-index-file org-mobile-directory)=
| =A0 =A0 =A0 (while (setq entry (pop def-todo)) | =A0 =A0 =A0 (insert "#+READONLY\n")
| =A0 =A0 =A0 (setq kwds (mapcar (lambda (x) (if (string-match "= (" x)
| =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0(substring x 0 (match-beginning 0))
| =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0x))
| =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(cdr entry))) =A0 <= <<<<<<<<<<<<<<<<<<<= ;< BOOM!
| =A0 =A0 =A0 (insert "#+TODO: " (mapconcat 'identity kwds &q= uot; ") "\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

,----
| =A0 =A0 ...
| =A0 =A0 (with-temp-file
| =A0 =A0 =A0 (expand-file-name org-mobile-index-file org-mobile-directory)=
| =A0 =A0 =A0 (while (setq entry (pop def-todo)) | =A0 =A0 =A0 (insert "#+READONLY\n")
| =A0 =A0 =A0 (debug)
| =A0 =A0 =A0 (setq kwds (mapcar (lambda (x) (if (string-match "("= ; x)
| =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0(substring x 0 (match-beginning 0))
| =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0x))
| =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(cdr entry)))
| =A0 =A0 =A0 (insert "#+TODO: " (mapconcat 'identity kwds &q= uot; ") "\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


--00504502b443c3cb880479f3bbe8-- --===============0850739029== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode --===============0850739029==--