9fans.net/go@v0.0.7/cmd/acme/internal/ui/look1.go (about) 1 // #include <u.h> 2 // #include <libc.h> 3 // #include <draw.h> 4 // #include <thread.h> 5 // #include <cursor.h> 6 // #include <mouse.h> 7 // #include <keyboard.h> 8 // #include <frame.h> 9 // #include <fcall.h> 10 // #include <regexp.h> 11 // #include <9pclient.h> 12 // #include <plumb.h> 13 // #include <libsec.h> 14 // #include "dat.h" 15 // #include "fns.h" 16 17 package ui 18 19 import ( 20 "9fans.net/go/cmd/acme/internal/runes" 21 "9fans.net/go/cmd/acme/internal/wind" 22 ) 23 24 func New(et, t, argt *wind.Text, flag1, flag2 bool, arg []rune) { 25 var a []rune 26 Getarg(argt, false, true, &a) 27 if a != nil { 28 New(et, t, nil, flag1, flag2, a) 29 if len(arg) == 0 { 30 return 31 } 32 } 33 // loop condition: *arg is not a blank 34 for ndone := 0; ; ndone++ { 35 a = runes.SkipNonBlank(arg) 36 if len(a) == len(arg) { 37 if ndone == 0 && et.Col != nil { 38 w := ColaddAndMouse(et.Col, nil, nil, -1) 39 wind.Winsettag(w) 40 OnNewWindow(w) 41 } 42 break 43 } 44 nf := len(arg) - len(a) 45 f := runes.Clone(arg[:nf]) 46 rs := wind.Dirname(et, f) 47 var e Expand 48 e.Name = rs 49 e.Bname = string(rs) 50 e.Jump = true 51 Openfile(et, &e) 52 arg = runes.SkipBlank(a) 53 } 54 }