It would be great if gerbv could expand a zipped file and display all the gerber and drill files in there. The "simple" solution would be to use unzip into a temporary directory, but that is not so nice. It feels slightly unportable and quite crude.
The best would be to use zlib streaming functions and "just" replace or improve the file operations in gerb_file.[hc]. Unfortunate there is some cruft for reading doubles in parse.c too that must be handled using solved.