From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Eric Schulte" Subject: Re: Babel: ob-plantuml fails on Windows Date: Tue, 07 Sep 2010 23:23:50 -0600 Message-ID: <87bp88u7ob.fsf@gmail.com> References: <87zkw0vv4n.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from [140.186.70.92] (port=50831 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OtDBa-0007aD-VH for emacs-orgmode@gnu.org; Wed, 08 Sep 2010 01:27:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OtDBZ-00033U-Ct for emacs-orgmode@gnu.org; Wed, 08 Sep 2010 01:27:06 -0400 Received: from mail-iw0-f169.google.com ([209.85.214.169]:52177) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OtDBZ-00033N-79 for emacs-orgmode@gnu.org; Wed, 08 Sep 2010 01:27:05 -0400 Received: by iwn33 with SMTP id 33so8780396iwn.0 for ; Tue, 07 Sep 2010 22:27:04 -0700 (PDT) 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: Manish Cc: Org-Mode Manish writes: > On Fri, Sep 3, 2010 at 12:19 AM, Eric Schulte wrote: >> Hi Manish, >> >> Are you sure that org-plantuml-jar-path is set when the function >> produces that error? I've just pushed up a slight change to >> ob-plantuml which is more explicit about ensuring the correctness of >> org-plantuml-jar-path before it is used. Could you retry with this new >> addition? > > Sorry for the late reply, Eric. Yes, org-plantuml-jar-path was set > correctly. I just tried with the new code and noticed that I was missing > :file option in the begin_src line. With new code and :file set > correctly, it worked for me. May be the error messages could be indicate > if :file is required and missing? > Done, an error message should now be raised when the :file header argument is not present. Best -- Eric > > Thanks > -- Manish > >> >> Thanks -- Eric >> >> Manish writes: >> >>> Hello! >>> >>> I was trying to test ob-plantuml and it failed with following trace. >>> >>> Setup: >>> >>> - GNU Emacs 24.0.50.1 (i386-mingw-nt5.1.2600) of 2010-08-30 on 3249CTO >>> - Windows XP SP 2 >>> - Org mode from git head >>> - org-plantuml-jar-path is set >>> - This example works from command-line and does not require dot. >>> >>> Trace: >>> >>> Debugger entered--Lisp error: (wrong-type-argument stringp nil) >>> string-match("[^\"]" nil) >>> shell-quote-argument(nil) >>> (concat "java -jar " (shell-quote-argument org-plantuml-jar-path) " >>> -p " cmdline " < " (shell-quote-argument in-file) " > " >>> (shell-quote-argument out-file)) >>> (let* ((result-params ...) (out-file ...) (cmdline ...) (in-file >>> ...) (cmd ...)) (unless (file-exists-p org-plantuml-jar-path) (error >>> "Could not find plantuml.jar at %s" org-plantuml-jar-path)) >>> (with-temp-file in-file (insert ...)) (message "%s" cmd) >>> (org-babel-eval cmd "") out-file) >>> org-babel-execute:plantuml("skinparam defaultFontName >>> Candara\nskinparam defaultFontSize 8\nparticipant User\nUser -> A: >>> DoWork\nactivate A\nA -> B: << createRequest >>\nactivate B\nB >>> -> C: DoWork\nactivate C\nC --> B: WorkDone\ndestroy C\nB --> >>> A: RequestCreated\ndeactivate B\nA -> User: Done\ndeactivate >>> A\n" ((:cache . "no") (:comments . "") (:exports . "results") (:hlines >>> . "no") (:noweb . "no") (:result . "\"sequence.png\"") (:results . >>> "replace file") (:session . "none") (:shebang . "") (:tangle . ""))) >>> funcall(org-babel-execute:plantuml "skinparam defaultFontName >>> Candara\nskinparam defaultFontSize 8\nparticipant User\nUser -> A: >>> DoWork\nactivate A\nA -> B: << createRequest >>\nactivate B\nB >>> -> C: DoWork\nactivate C\nC --> B: WorkDone\ndestroy C\nB --> >>> A: RequestCreated\ndeactivate B\nA -> User: Done\ndeactivate >>> A\n" ((:cache . "no") (:comments . "") (:exports . "results") (:hlines >>> . "no") (:noweb . "no") (:result . "\"sequence.png\"") (:results . >>> "replace file") (:session . "none") (:shebang . "") (:tangle . ""))) >>> (setq result (funcall cmd body params)) >>> (if (and (not arg) new-hash (equal new-hash old-hash)) >>> (save-excursion (goto-char ...) (end-of-line 1) (forward-char 1) (setq >>> result ...) (message ...) result) (message "executing %s code >>> block%s..." (capitalize lang) (if ... ... "")) (setq result (funcall >>> cmd body params)) (if (eq result-type ...) (setq result ...)) >>> (org-babel-insert-result result result-params info new-hash indent >>> lang) (run-hooks (quote org-babel-after-execute-hook)) result) >>> (progn (fset (quote call-process-region) (function* ...)) (unless >>> (fboundp cmd) (error "No org-babel-execute function for %s!" lang)) >>> (if (and ... new-hash ...) (save-excursion ... ... ... ... ... result) >>> (message "executing %s code block%s..." ... ...) (setq result ...) (if >>> ... ...) (org-babel-insert-result result result-params info new-hash >>> indent lang) (run-hooks ...) result)) >>> (unwind-protect (progn (fset ... ...) (unless ... ...) (if ... ... >>> ... ... ... ... ... result)) (if --cl-letf-bound-- (fset ... >>> --cl-letf-save--) (fmakunbound ...))) >>> (let* ((--cl-letf-bound-- ...) (--cl-letf-save-- ...)) >>> (unwind-protect (progn ... ... ...) (if --cl-letf-bound-- ... ...))) >>> (letf ((... ...)) (unless (fboundp cmd) (error "No org-babel-execute >>> function for %s!" lang)) (if (and ... new-hash ...) (save-excursion >>> ... ... ... ... ... result) (message "executing %s code block%s..." >>> ... ...) (setq result ...) (if ... ...) (org-babel-insert-result >>> result result-params info new-hash indent lang) (run-hooks ...) >>> result)) >>> (letf* ((... ...)) (unless (fboundp cmd) (error "No >>> org-babel-execute function for %s!" lang)) (if (and ... new-hash ...) >>> (save-excursion ... ... ... ... ... result) (message "executing %s >>> code block%s..." ... ...) (setq result ...) (if ... ...) >>> (org-babel-insert-result result result-params info new-hash indent >>> lang) (run-hooks ...) result)) >>> (flet ((call-process-region ... ...)) (unless (fboundp cmd) (error >>> "No org-babel-execute function for %s!" lang)) (if (and ... new-hash >>> ...) (save-excursion ... ... ... ... ... result) (message "executing >>> %s code block%s..." ... ...) (setq result ...) (if ... ...) >>> (org-babel-insert-result result result-params info new-hash indent >>> lang) (run-hooks ...) result)) >>> (unwind-protect (flet (...) (unless ... ...) (if ... ... ... ... ... >>> ... ... result)) (setq call-process-region (quote >>> org-babel-call-process-region-original))) >>> (let* ((lang ...) (params ...) (new-hash ...) (old-hash ...) (body >>> ...) (result-params ...) (result-type ...) (cmd ...) (dir ...) >>> (default-directory ...) (org-babel-call-process-region-original ...) >>> (indent ...) result) (unwind-protect (flet ... ... ...) (setq >>> call-process-region ...))) >>> (progn (let* (... ... ... ... ... ... ... ... ... ... ... ... >>> result) (unwind-protect ... ...))) >>> (if (org-babel-confirm-evaluate info) (progn (let* ... ...))) >>> (when (org-babel-confirm-evaluate info) (let* (... ... ... ... ... >>> ... ... ... ... ... ... ... result) (unwind-protect ... ...))) >>> (let ((info ...)) (when (org-babel-confirm-evaluate info) (let* ... ...))) >>> org-babel-execute-src-block(nil ("plantuml" "skinparam >>> defaultFontName Candara\nskinparam defaultFontSize 8\nparticipant >>> User\nUser -> A: DoWork\nactivate A\nA -> B: << createRequest >>>>>\nactivate B\nB -> C: DoWork\nactivate C\nC --> B: >>> WorkDone\ndestroy C\nB --> A: RequestCreated\ndeactivate B\nA -> >>> User: Done\ndeactivate A\n" ((:cache . "no") (:comments . "") >>> (:exports . "results") (:hlines . "no") (:noweb . "no") (:result . >>> "\"sequence.png\"") (:results . "replace file") (:session . "none") >>> (:shebang . "") (:tangle . "")) "" nil nil 0)) >>> (progn (org-babel-execute-src-block current-prefix-arg info) t) >>> (if info (progn (org-babel-execute-src-block current-prefix-arg info) t) nil) >>> (let ((info ...)) (if info (progn ... t) nil)) >>> org-babel-execute-src-block-maybe() >>> (or (org-babel-execute-src-block-maybe) (org-babel-lob-execute-maybe)) >>> org-babel-execute-maybe() >>> (if org-babel-no-eval-on-ctrl-c-ctrl-c nil (org-babel-execute-maybe)) >>> (unless org-babel-no-eval-on-ctrl-c-ctrl-c (org-babel-execute-maybe)) >>> org-babel-execute-safely-maybe() >>> run-hook-with-args-until-success(org-babel-execute-safely-maybe) >>> (cond ((or ... org-occur-highlights >>> org-latex-fragment-image-overlays) (and ... ...) >>> (org-remove-occur-highlights) >>> (org-remove-latex-fragment-image-overlays) (message "Temporary >>> highlights/overlays removed from current buffer")) ((and ... ...) >>> (funcall org-finish-function)) ((run-hook-with-args-until-success >>> ...)) ((or ... ...) (call-interactively ...)) ((org-on-target-p) >>> (call-interactively ...)) ((and ... ...) (call-interactively ...)) >>> ((org-on-heading-p) (call-interactively ...)) ((org-at-table\.el-p) >>> (message "Use C-c ' to edit table.el tables")) ((org-at-table-p) >>> (org-table-maybe-eval-formula) (if arg ... ...) (call-interactively >>> ...)) ((or ... ...) (call-interactively ...)) >>> ((org-at-item-checkbox-p) (call-interactively ...) (call-interactively >>> ...) (org-list-send-list ...)) ((org-at-item-p) (call-interactively >>> ...) (when arg ...) (org-list-send-list ...)) ((save-excursion ... >>> ...) (beginning-of-line 1) (save-excursion ...)) ((save-excursion ... >>> ...) (cond ... ...)) ((org-clock-update-time-maybe)) (t (error "C-c >>> C-c can do nothing useful at this location"))) >>> (let ((org-enable-table-editor t)) (cond (... ... ... ... ...) (... >>> ...) (...) (... ...) (... ...) (... ...) (... ...) (... ...) (... ... >>> ... ...) (... ...) (... ... ... ...) (... ... ... ...) (... ... ...) >>> (... ...) (...) (t ...))) >>> org-ctrl-c-ctrl-c(nil) >>> call-interactively(org-ctrl-c-ctrl-c nil nil) >>> >>> Any clues/ideas what could be wrong? >>> >>> Thanks >>> -- Manish