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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: opening correct source file on compile error


From: Ushnish Basu
Subject: Re: opening correct source file on compile error
Date: Mon, 23 Oct 2006 10:29:55 -0700
User-agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.4 (gnu/linux)

Kevin Rodgers <ihs_4664@yahoo.com> writes:

> kl.vanw@gmail.com wrote:
>> Here's my situation. My header files (C++) are located in a dir named
>> src/lib. These are the files I edit and are CVS managed. When I run
>> 'make', make copies the headers into include/, which my other source
>> files include. Then if there was an error in one of the headers, and I
>> use 'next-error' in the compilation buffer to open the header, emacs
>> opens the file in the include/ directory, but I really need it to open
>> the header in src/lib. Can I some how help emacs find the right file?
>> Unfortunately, I don't have the option of changing the way our makefile
>> works or the #include statements.
>
> Try this:
>
> (add-hook 'find-file-hook
>         (lambda ()
>           (let* ((file (file-name-nondirectory buffer-file-name))
>                  (directory (file-name-directory buffer-file-name))
>                  (alternate-file (expand-file-name file "../src/lib")))
>             (when (and (equal (file-name-nondirectory
>                                (directory-file-name directory))
>                               "include")
>                        (file-exists-p alternate-file))
>               (find-alternate-file alternate-file)))))
>
> -- 
> Kevin
>

I have a similar problem, except that my CVS has *.F files (in say ../src) for
the fortran preprocessor, and make gives me corresponding *.f files in the
current directory. How would one modify the above example for this case?
Sorry, I don't understand (e)lisp well enough to do it myself, but I am
planning to learn. 

-- 
Ushnish Basu          ubasu@ce.berkeley.edu          
+1 510 644-1906       www.ce.berkeley.edu/~ubasu


reply via email to

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