help-gnu-emacs
[Top][All Lists]
Advanced

[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 ]


reply via email to

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