Hi Eric, "Eric Schulte" wrote: > I think this should be possible using the `org-babel-post-tangle-hook' to > re-save the file with a specified encoding. After looking into this a little > bit it appears that you should be able to add a function to this hook which > will update the `save-buffer-coding-system' variable and then re-save the > buffer. This should allow you to save tangled files in arbitrary code > systems.
#+TITLE: Format for tangling files #+DATE: 2010-11-22 #+BABEL: :comments yes * Bug report ** Script #+begin_src sh :tangle doit.sh #!/bin/bash # L'élève est là-bas... ls date #+end_src ** Execute it in a Bash shell The tangled file, when launched from withing a Bash shell, returns errors: #+begin_src sh s...@mediacenter:.../Accounting/dev 0$ ./doit.sh ./doit.sh: line 4: $'\r': command not found ./doit.sh: line 5: $'ls\r': command not found ./doit.sh: line 6: $'date\r': command not found #+end_src The reason is that the tangled file is saved as UTF-8-dos (being under Windows). It should be saved in unix format. Is there a way to impose this? * Answer from Eric #+begin_example I think this should be possible using the `org-babel-post-tangle-hook' to re-save the file with a specified encoding. After looking into this a little bit it appears that you should be able to add a function to this hook which will update the `save-buffer-coding-system' variable and then re-save the buffer. #+end_example * Tests ** One Evaluate this: #+begin_src emacs-lisp :results silent :tangle no (add-hook 'org-babel-pre-tangle-hook (lambda () (setq save-buffer-coding-system 'iso-latin-9-unix))) #+end_src Instead of setting the variable in *post* hook (and saving the tangled file -- for which I did not know how to procede: what's the argument to give to save?), I wondered if it shouldn't be easier to set it in the *pre* hook... Though, the above does not work as I would expect. ** Two After different trials, I came up with the following which works for me... Evaluate this: #+begin_src emacs-lisp :results silent :tangle no (add-hook 'org-babel-pre-tangle-hook (lambda () (setq coding-system-for-write 'iso-latin-9-unix))) #+end_src It's not clear to me what's the exact difference between the 2 variables (=save-buffer-coding-system= and =coding-system-for-write=). But that works: #+begin_src sh s...@mediacenter:.../Accounting/dev 0$ doit.sh accountlog.csv csv2ledger.sh doit.sh ecm-tangle.txt my-csv2ledger.html my-csv2ledger.txt Mon Nov 22 13:30:12 2010 #+end_src Best regards, Seb -- Sébastien Vauban _______________________________________________ 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