The current method the command Quick Open of the C bundle does use is look for the file in several funny directories that not always are then same c/c++ are looking into.
Is not easy to know where the cpp preprocessor look for the included files. The only method I have found is from Andrew Tomazos and is a small Perl script that makes c++ have mistakes and then shows us the real places where it is looking into.
Running it once is enough, I think, and then pick up the directories for a script to quick opening included files.
I would like to know who is the C bundle maintainer for to share this things with him.
I also find a bit complicated the current way of making changes (yet small changes) and then you will be out of updates of the official bundle since yours will be always loaded before the official one.
Tx.
#!/usr/bin/env perl
$line=$ENV{'TM_CURRENT_LINE'}; $header=$ENV{'TM_SELECTED_TEXT'};
if (!$header) { $line =~ /#\s*include\s*([<"])(.*?)[">]/; $local = $1; $header = $2; }
if ($local eq '"') { $t = $ENV{'TM_DIRECTORY'}; if (-f "$t/$header" ) { print "$t/$header"; system("mate -r "$t/$header""); exit 0; } }
@incs = qw( /usr/include/c++/4.0.0 /usr/include/c++/4.0.0/powerpc-apple-darwin8 /usr/include/c++/4.0.0/backward /usr/local/include /usr/lib/gcc/powerpc-apple-darwin8/4.0.1/include /usr/include /System/Library/Frameworks /Library/Frameworks );
foreach $t (@incs) { if (-f "$t/$header") { print "$t/$header"; system("mate -r "$t/$header""); exit 0; } } print ""; exit 1;