emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] Re: with-parsed-tramp-file-name


From: Dan Davison
Subject: [Orgmode] Re: with-parsed-tramp-file-name
Date: Thu, 30 Sep 2010 09:44:15 +0100
User-agent: Gnus/5.110011 (No Gnus v0.11) Emacs/24.0.50 (gnu/linux)

Hi Austin,

Noorul Islam K M <address@hidden> writes:

> "Austin F. Frank" <address@hidden> writes:

>> Recently I discovered that I can no longer evaluate R source code blocks
>> on a file opened using TRAMP.

Just btw, I use Org every day at the moment (with emacs24) to execute
code (mostly R) on remote machines. The method I use is to store all Org
files locally, and use the :dir header argument to specify the machine
on which to run R, e.g.

--8<---------------cut here---------------start------------->8---
#+babel:   :dir /address@hidden:~/bench
[...]
#+begin_src R
system("hostname", intern=TRUE)
#+end_src

#+results:
: oak
--8<---------------cut here---------------end--------------->8---

Do you get the same error evaluating R remotely using this method?

>> Using Org-mode version 7.01trans (release_7.01h.746.g72c5) with the

What's your emacs version?

>> following minimal configuration:
>>
>> ;; specific to my setup
>> (add-to-list 'load-path (expand-file-name "~/src.remote/org-mode/lisp/"))
>> (add-to-list 'load-path (expand-file-name 
>> "/usr/local/share/emacs/site-lisp/"))
>>
>> ;; general instructions
>> (require 'tramp)
>> (require 'tramp-sh)          ; have to do this to set tramp-remote-path?

I don't see tramp-sh in emacs23; I do see it in emacs24.

>> (require 'ess-site)
>> (require 'org-install)
>>
>> (setq debug-on-error t)
>>
>> ;; active Babel languages
>> (org-babel-do-load-languages
>>  'org-babel-load-languages
>>  '((R . t)))
>>
>> ;; required for R to work correctly on my remote server
>> (add-to-list 'tramp-remote-path 'tramp-own-remote-path)

>>
>> I evaluate the following code block from a file accessed using TRAMP:
[...]
How about we test this simple source block:

#+begin_src R
system("hostname", intern=TRUE)
#+end_src

in a file on the remote machine opened using C-x C-f with the
/address@hidden:path/to/file syntax, with this minimal config:

--8<---------------cut here---------------start------------->8---
(add-to-list 'load-path "/PATH/TO/ess/lisp")
(require 'ess-site)
(add-to-list 'load-path "/PATH/TO/org-mode/lisp")
(require 'org-install)
(setq debug-on-error t)
(org-babel-do-load-languages
 'org-babel-load-languages
 '((R . t)))
--8<---------------cut here---------------end--------------->8---

>> And get the following backtrace:

>> Debugger entered--Lisp error: (invalid-function with-parsed-tramp-file-name)
>>   with-parsed-tramp-file-name("/scpc:bcs:/tmp/R-22126Grk" nil nil)
>>   org-babel-local-file-name("/scpc:bcs:/tmp/R-22126Grk")

[...]

With emacs 23.1.1, I get a different error, also involving tramp
functions (backtrace below). With emacs 24.0.50.1 I get no error.

However, if I add in your two tramp (require) lines:
(require 'tramp)
(require 'tramp-sh)

Then I do get an error with emacs24, again different.

I suspect part of the problem is to do with those (require tramp...)
lines in your config. Could you try without those lines, and without

(add-to-list 'tramp-remote-path 'tramp-own-remote-path)

Instead, could you try

(setq org-babel-R-command "/PATH/TO/R/EXECUTABLE --slave --no-save")

> I tried to replicate this and I get the same error.

> If I manually load ob.el by M-x load-file with Location as
> /path/to/ob.el then C-c C-c works. But (require 'ob) is not
> working. Am I missing something?

Noruul, what does (featurep 'ob) evaluate to before you manually attempt
the (require 'ob) ? And what goes wrong when you do the require?

If (part of) this is an issue of tramp differences between emacs23 and
24 then the tramp author Michael Albinus has already been extremely
helpful on several occasions with tramp issues and I am confident he
will be able to advise.

Dan

Error from emacs24 with tramp require lines in emacs config:
--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (void-function tramp-compat-octal-to-decimal)
  signal(void-function (tramp-compat-octal-to-decimal))
  byte-code("\203\305        G!\203\n\306>\203\307\207\203&\305        
G!\203&\n\310>\203&address@hidden"\207" [completion localname operation 
filename err zerop (file-exists-p file-directory-p) t (expand-file-name 
file-name-as-directory) signal] 3)
  tramp-file-name-handler(insert-file-contents 
"/scpc:address@hidden:/tmp/austin.org" t nil nil nil)
  insert-file-contents("/scpc:address@hidden:/tmp/austin.org" t)
  byte-code("\302\303  \302\"\210)\302\207" [inhibit-read-only filename t 
insert-file-contents] 3)
  find-file-noselect-1(#<buffer austin.org> 
"/scpc:address@hidden:/tmp/austin.org" nil nil 
"/scpc:address@hidden:/tmp/austin.org" ((149 . 8410) (-1 . 0)))
  find-file-noselect("/scpc:address@hidden:/tmp/austin.org" nil nil t)
  find-file("/scpc:address@hidden:/tmp/austin.org" t)
  call-interactively(find-file nil nil)
--8<---------------cut here---------------end--------------->8---

Error with emacs23:
--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p "")
  tramp-handle-write-region("" nil "/scp:address@hidden:/tmp/R-32069vws" nil 
silent)
  apply(tramp-handle-write-region ("" nil "/scp:address@hidden:/tmp/R-32069vws" 
nil silent))
  tramp-sh-file-name-handler(write-region "" nil 
"/scp:address@hidden:/tmp/R-32069vws" nil silent)
  apply(tramp-sh-file-name-handler write-region ("" nil 
"/scp:address@hidden:/tmp/R-32069vws" nil silent))
  tramp-file-name-handler(write-region "" nil 
"/scp:address@hidden:/tmp/R-32069vws" nil silent)
  write-region("" nil "/scp:address@hidden:/tmp/R-32069vws" nil silent nil excl)
  byte-code("ÅÆG!ƒÇ  !‚È  \"!ƒ\nP\fƒ'É\n!ˆ‚2ÊËÌ\nÌÍÌÎ&ˆÌ‡" 
[prefix temporary-file-directory file suffix dir-flag make-temp-name zerop 
file-name-as-directory expand-file-name make-directory write-region "" nil 
silent excl] 8)
  make-temp-file("/scp:address@hidden:/tmp/R-")
  (if (file-remote-p default-directory) (make-temp-file (concat ... ... nil 
suffix)) (make-temp-file prefix nil suffix))
  org-babel-temp-file("R-")
  (let ((tmp-file ...)) (org-babel-eval org-babel-R-command (format 
org-babel-R-write-object-command ... ... ... ...)) 
(org-babel-R-process-value-result (org-babel-import-elisp-from-file tmp-file 
...) column-names-p))
  (cond ((eql result-type ...) (let ... ... ...)) ((eql result-type ...) 
(org-babel-eval org-babel-R-command body)))
  (case result-type (value (let ... ... ...)) (output (org-babel-eval 
org-babel-R-command body)))
  org-babel-R-evaluate-external-process("system(\"hostname\", intern=TRUE)" 
value nil nil)
  (if session (org-babel-R-evaluate-session session body result-type 
column-names-p row-names-p) (org-babel-R-evaluate-external-process body 
result-type column-names-p row-names-p))
  org-babel-R-evaluate(nil "system(\"hostname\", intern=TRUE)" value nil nil)
  (let* ((processed-params ...) (result-type ...) (session ...) (colnames-p 
...) (rownames-p ...) (out-file ...) (full-body ...) (result ...)) (message 
"result is %S" result) (or out-file result))
  (save-excursion (let* (... ... ... ... ... ... ... ...) (message "result is 
%S" result) (or out-file result)))
  org-babel-execute:R("system(\"hostname\", intern=TRUE)\n" ((:cache . "no") 
(:comments . "") (:exports . "code") (:hlines . "no") (:noweb . "no") (:results 
. "replace") (:session . "none") (:shebang . "") (:tangle . "no")))
  funcall(org-babel-execute:R "system(\"hostname\", intern=TRUE)\n" ((:cache . 
"no") (:comments . "") (:exports . "code") (:hlines . "no") (:noweb . "no") 
(:results . "replace") (:session . "none") (:shebang . "") (:tangle . "no")))
  (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 ("R" "system(\"hostname\", intern=TRUE)\n" 
((:cache . "no") (:comments . "") (:exports . "code") (:hlines . "no") (:noweb 
. "no") (:results . "replace") (:session . "none") (:shebang . "") (:tangle . 
"no")) "" 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)
  recursive-edit()
  byte-code("Æ @Ç=ƒ!ÈÉÊ\"ˆËÉ!‰A@)¢Ì=ƒ!ÈÍÊ\"ˆÎ!ˆÏ ˆÐ        !ˆ\fƒdÑed\"
VƒWebˆÒ
¥yˆ`dbˆÒ
¥
Zyˆ`|ˆ)ÓcˆebˆÔÕÖ \"ˆ×Æ!ˆÔØ!ˆÙÊÔØ!ˆŠÚ ˆ+ه" [unread-command-char 
debugger-args x debugger-buffer noninteractive debugger-batch-max-lines -1 
debug backtrace-debug 4 t backtrace-frame lambda 5 pop-to-buffer debugger-mode 
debugger-setup-buffer count-lines 2 "...\n" message "%s" buffer-string 
kill-emacs "" nil recursive-edit middlestart buffer-read-only standard-output] 
4)
  debug(error (wrong-type-argument number-or-marker-p ""))
  tramp-handle-write-region("" nil "/scp:address@hidden:/tmp/R-32069u9N" nil 
silent)
  apply(tramp-handle-write-region ("" nil "/scp:address@hidden:/tmp/R-32069u9N" 
nil silent))
  tramp-sh-file-name-handler(write-region "" nil 
"/scp:address@hidden:/tmp/R-32069u9N" nil silent)
  apply(tramp-sh-file-name-handler write-region ("" nil 
"/scp:address@hidden:/tmp/R-32069u9N" nil silent))
  tramp-file-name-handler(write-region "" nil 
"/scp:address@hidden:/tmp/R-32069u9N" nil silent)
  write-region("" nil "/scp:address@hidden:/tmp/R-32069u9N" nil silent nil excl)
  byte-code("ÅÆG!ƒÇ  !‚È  \"!ƒ\nP\fƒ'É\n!ˆ‚2ÊËÌ\nÌÍÌÎ&ˆÌ‡" 
[prefix temporary-file-directory file suffix dir-flag make-temp-name zerop 
file-name-as-directory expand-file-name make-directory write-region "" nil 
silent excl] 8)
  make-temp-file("/scp:address@hidden:/tmp/R-")
  (if (file-remote-p default-directory) (make-temp-file (concat ... ... nil 
suffix)) (make-temp-file prefix nil suffix))
  org-babel-temp-file("R-")
  (let ((tmp-file ...)) (org-babel-eval org-babel-R-command (format 
org-babel-R-write-object-command ... ... ... ...)) 
(org-babel-R-process-value-result (org-babel-import-elisp-from-file tmp-file 
...) column-names-p))
  (cond ((eql result-type ...) (let ... ... ...)) ((eql result-type ...) 
(org-babel-eval org-babel-R-command body)))
  (case result-type (value (let ... ... ...)) (output (org-babel-eval 
org-babel-R-command body)))
  org-babel-R-evaluate-external-process("system(\"hostname\", intern=TRUE)" 
value nil nil)
  (if session (org-babel-R-evaluate-session session body result-type 
column-names-p row-names-p) (org-babel-R-evaluate-external-process body 
result-type column-names-p row-names-p))
  org-babel-R-evaluate(nil "system(\"hostname\", intern=TRUE)" value nil nil)
  (let* ((processed-params ...) (result-type ...) (session ...) (colnames-p 
...) (rownames-p ...) (out-file ...) (full-body ...) (result ...)) (message 
"result is %S" result) (or out-file result))
  (save-excursion (let* (... ... ... ... ... ... ... ...) (message "result is 
%S" result) (or out-file result)))
  org-babel-execute:R("system(\"hostname\", intern=TRUE)\n" ((:cache . "no") 
(:comments . "") (:exports . "code") (:hlines . "no") (:noweb . "no") (:results 
. "replace") (:session . "none") (:shebang . "") (:tangle . "no")))
  funcall(org-babel-execute:R "system(\"hostname\", intern=TRUE)\n" ((:cache . 
"no") (:comments . "") (:exports . "code") (:hlines . "no") (:noweb . "no") 
(:results . "replace") (:session . "none") (:shebang . "") (:tangle . "no")))
  (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 ("R" "system(\"hostname\", intern=TRUE)\n" 
((:cache . "no") (:comments . "") (:exports . "code") (:hlines . "no") (:noweb 
. "no") (:results . "replace") (:session . "none") (:shebang . "") (:tangle . 
"no")) "" 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)
--8<---------------cut here---------------end--------------->8---



>
> Thanks and Regards
> Noorul
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> address@hidden
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode



reply via email to

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