From: tsd@tsdye.com (Thomas S. Dye)
To: Michael Hannon <jm_hannon@yahoo.com>
Cc: Org-Mode List <emacs-orgmode@gnu.org>
Subject: Re: Losing tabs when tangling or editing
Date: Mon, 28 May 2012 02:30:58 -1000 [thread overview]
Message-ID: <m1obp8pjwd.fsf@tsdye.com> (raw)
In-Reply-To: <1337807919.11721.YahooMailNeo@web161904.mail.bf1.yahoo.com> (Michael Hannon's message of "Wed, 23 May 2012 14:18:39 -0700 (PDT)")
Michael Hannon <jm_hannon@yahoo.com> writes:
> Greetings. I was trying to set up a little demo in which I included a
> Makefile inside a "sh" source-code block in an Org-mode file, then tangled the
> file and ran "make" on the tangled file (either in the actual shell or in
> another sh block in Org).
>
> It appears that Org is removing tabs when it tangles the file, and the lack of
> tabs causes "make" to complain.
>
> I've appended a toy example which exhibits the problem. BTW, if I edit the
> source block via C-c ' I also lose the tabs, i.e., even before tangling.
>
> Any thoughts about this?
>
> Thanks,
>
> -- Mike
Hi Mike,
I stumbled across this, too, in a somewhat different context. My
"solution" was to hard code the newlines and tabs with \n\t using an
emacs-lisp source block and (format), then evaluate to a file, rather
than tangle. I don't think it's a pretty solution, but it does work.
hth,
Tom
#+name: configure-makefile
#+header: :file Makefile
#+header: :var emacs="/Applications/Emacs-23-4.app/Contents/MacOS/Emacs"
#+header: :var init-file="init-new.el"
#+header: :var exporter="new"
#+header: :eval noexport
#+BEGIN_SRC emacs-lisp
(let ((f (file-name-sans-extension (file-name-nondirectory
(buffer-file-name))))
(g (if (string= exporter "old") "org-export-as-latex" "org-e-latex-export-to-latex")))
(format "CC=gcc
EMACS=%s
BATCH_EMACS=$(EMACS) --batch -Q -l %s %s
all: %s.pdf
%s.tex: %s.org\n\t$(BATCH_EMACS) -f %s
%s.pdf: %s.tex\n\trm -f %s.aux\n\tif pdflatex %s.tex </dev/null; then \\\n\t\ttrue; \\\n\telse \\\n\t\tstat=$$?; touch %s.pdf; exit $$stat; \\\n\tfi\n\tbibtex %s\n\twhile grep \"Rerun to get\" %s.log; do \\\n\t\tif pdflatex %s.tex </dev/null; then \\\n\t\t\ttrue; \\\n\t\telse \\\n\t\t\tstat=$$?; touch %s.pdf; exit $$stat; \\\n\t\tfi; \\\n\tdone
%s.ps: %s.pdf\n\tpdf2ps %s.pdf
clean:\n\trm -f *.aux *.log *.dvi *.blg *.bbl *.toc *.tex *~ *.out %s.pdf *.xml *.lot *.lof
" emacs init-file (file-name-nondirectory (buffer-file-name)) f f f g f f f f f f f f f f f f f))
#+END_SRC
>
>
> $ cat Makefile.original
> hw: hw.cpp
> g++ -o hw hw.cpp
>
> $ grep -P "\t" Makefile.original
> hw: hw.cpp
> g++ -o hw hw.cpp
>
> $ make -f Makefile.original
> g++ -o hw hw.cpp
>
> $ ./hw
> Hello, world!
>
> $ \rm hw
>
> $ cat hw.org
> * test preservation of tabs when tangling
>
> #+BEGIN_SRC sh :tangle Makefile.tangled
>
> hw: hw.cpp
> g++ -o hw hw.cpp
>
> #+END_SRC
>
> $ make -f Makefile.tangled
> Makefile.tangled:3: *** missing separator (did you mean TAB instead of 8
> spaces?). Stop.
>
>
--
Thomas S. Dye
http://www.tsdye.com
next prev parent reply other threads:[~2012-05-28 12:31 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-23 21:18 Losing tabs when tangling or editing Michael Hannon
2012-05-28 12:30 ` Thomas S. Dye [this message]
2012-05-28 21:14 ` Michael Hannon
2012-05-29 3:45 ` Michael Hannon
2012-05-30 1:05 ` Bernt Hansen
2012-05-30 7:19 ` Michael Hannon
2012-05-30 18:53 ` Thomas S. Dye
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m1obp8pjwd.fsf@tsdye.com \
--to=tsd@tsdye.com \
--cc=emacs-orgmode@gnu.org \
--cc=jm_hannon@yahoo.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).