[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Wait for compile to finish
From: |
Toto |
Subject: |
Wait for compile to finish |
Date: |
20 Oct 2005 15:07:54 +0200 |
Greetings!
My problem is the following:
I would like to have a function, which runs the program, that belongs to
the buffer i'm editing or compile it first if it isn't done already.
To make it more clear. Say, i'm editing helloworld.c and i call this
function, it should execute helloworld.exe (yes, i'm on windows). If
there is no hello.exe in the current directory (or it is older than the
source file) emacs should compile it first and run it afterwards.
For this purpose I have come up with a funcion similar to the one below.
But: Compile is asynchronous, so this funcion tries to execute the exe
file before the compilation finishes (and the exe is created).
My question is:
Is there a synchronous version of compile? Or how can i determine that
compile has finished (and get the result of the compilation - success
or failure)?
The (pseudo) code is as follows:
(defun run-compiled-program (params)
"Runs the program with the same name as the buffer."
(interactive "sRun with parameter(s): ")
(setq exe (concat
(file-name-sans-extension (buffer-file-name))
".exe"
)
)
(if (not (file-newer-than-file-p exe (buffer-file-name)))
(compile-this-buffer) ;; using the compile funcion
)
(shell-command
(concat exe " " params)
)
)
;; GNU Emacs 22.0.50.1 (i386-mingw-nt5.1.2600) of 2005-03-08 on S8472
Any suggestions are welcome.
Ps.: my english might not be the best ;)
--
[ Toto ]
- Wait for compile to finish,
Toto <=