Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: `make' completion in zsh-3.1.9



On Mar 19, 10:34am, Sven Wischnowsky wrote:
}
} At least we shouldn't let it out of the door in a state where people
} might have to set a barely documented style to keep it from doing such 
} horrible things.

On Mar 19, 10:17am, Peter Stephenson wrote:
} Subject: Re: `make' completion in zsh-3.1.9
}
} This passed me by, and it obviously needs changing, but the awk stuff
} is a bit minimal.

The reason for invoking "make -nsp ..." appears to be to get "include"
lines to be processed, with conditionals like "ifdef" and "ifeq" as a
secondary consideration.  The problem seems to be that "make -n" doesn't
really mean what it says -- make will still execute its internal rules
for building other makefiles, even though it won't execute the commands
for building explicit non-makefile targets.

Unfortunately I don't see any reasonable workaround.  I toyed with a
little function to do simple "include" processing, but it chokes when
the include line mentions a make variable (such as $(ARCH) in the linux
sources).  It might be possible to write something that emulates make
to the extent of being able to deal with this, but even in Perl I'm not
too keen on attempting it.

So we may be stuck with the awk we have, except that we could unfold any
backslash-continued lines before awking.  That'd be as easy as adding a
"while read -e; do : done" to the command substitution.

(Or at least I though it would, but:

zsh% while read -e; do :; done < Makefile | less

hangs until interrupted.  This works:

zsh% { while read -e; do :; done < Makefile } | less

What's up with that first one?)

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   



Messages sorted by: Reverse Date, Date, Thread, Author