From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?Q?S=C3=A9bastien_Vauban?= Subject: Re: [Babel] Coding system of tangled files? Date: Mon, 22 Nov 2010 13:41:40 +0100 Message-ID: <80tyj9wmwr.fsf@missioncriticalit.com> References: <801v6ieqjl.fsf@mundaneum.com> <87tyjeheqt.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: 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-mXXj517/zsQ@public.gmane.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: emacs-orgmode-mXXj517/zsQ@public.gmane.org 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 lit= tle > bit it appears that you should be able to add a function to this hook whi= ch > 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'=C3=A9l=C3=A8ve est l=C3=A0-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 sva@MEDIACENTER:.../Accounting/dev 0$ ./doit.sh=20 ./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 (=3Dsave-buffer-coding-system=3D and =3Dcoding-system-for-write=3D). But th= at works: #+begin_src sh sva@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 --=20 S=C3=A9bastien Vauban _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode-mXXj517/zsQ@public.gmane.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode