ta simple plan 9 image viewer - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 3f8c70e97c2eb85992424439af56a4dd6412b8c6
 (DIR) parent e2713e92abdfd2ac5359f5756ffff112e1069c78
 (HTM) Author: rsc <devnull@localhost>
       Date:   Sat, 24 Apr 2004 16:59:47 +0000
       
       a simple plan 9 image viewer
       
       Diffstat:
         A src/cmd/draw/img.c                  |      63 +++++++++++++++++++++++++++++++
       
       1 file changed, 63 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/src/cmd/draw/img.c b/src/cmd/draw/img.c
       t@@ -0,0 +1,63 @@
       +#include <u.h>
       +#include <libc.h>
       +#include <draw.h>
       +#include <event.h>
       +
       +void
       +usage(void)
       +{
       +        fprint(2, "usage: img [file]\n");
       +        exits("usage");
       +}
       +
       +Image *image;
       +
       +void
       +eresized(int new)
       +{
       +        if(new && getwindow(display, Refnone) < 0)
       +                sysfatal("can't reattach to window: %r");
       +
       +        draw(screen, screen->r, display->white, nil, ZP);
       +        drawop(screen, screen->r, image, nil, image->r.min, S);
       +}
       +
       +void
       +main(int argc, char **argv)
       +{
       +        int fd;
       +        Event e;
       +
       +        ARGBEGIN{
       +        default:
       +                usage();
       +        }ARGEND
       +
       +        if(argc > 1)
       +                usage();
       +
       +        if(argc == 1){
       +                if((fd = open(argv[0], OREAD)) < 0)
       +                        sysfatal("open %s: %r");
       +        }else
       +                fd = 0;
       +
       +        if(initdraw(nil, nil, nil) < 0)
       +                sysfatal("initdraw: %r");
       +
       +        if((image=readimage(display, fd, 0)) == nil)
       +                sysfatal("readimage: %r");
       +
       +        einit(Emouse|Ekeyboard);
       +        eresized(0);
       +        for(;;){
       +                switch(event(&e)){
       +                case Ekeyboard:
       +                        if(e.kbdc == 'q' || e.kbdc == 0x7F)
       +                                exits(nil);
       +                        break;
       +                case Emouse:
       +                        break;
       +                }
       +        }
       +}