diff --git a/acme/Watch/sig_generic.go b/acme/Watch/sig_generic.go index 643c0422..e9c7b542 100644 --- a/acme/Watch/sig_generic.go +++ b/acme/Watch/sig_generic.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !linux && !darwin && !freebsd && !netbsd && !openbsd && !solaris // +build !linux,!darwin,!freebsd,!netbsd,!openbsd,!solaris package main diff --git a/acme/Watch/sig_unix.go b/acme/Watch/sig_unix.go index 0f8d76fa..fca0955f 100644 --- a/acme/Watch/sig_unix.go +++ b/acme/Watch/sig_unix.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build linux || darwin || freebsd || netbsd || openbsd || solaris // +build linux darwin freebsd netbsd openbsd solaris package main diff --git a/acme/acme.go b/acme/acme.go index 96c9c3ba..d3fa4d70 100644 --- a/acme/acme.go +++ b/acme/acme.go @@ -266,7 +266,7 @@ func Open(id int, ctl *client.Fid) (*Win, error) { } // Addr writes format, ... to the window's addr file. -func (w *Win) Addr(format string, args ...interface{}) error { +func (w *Win) Addr(format string, args ...any) error { return w.Fprintf("addr", format, args...) } @@ -300,7 +300,7 @@ func (w *Win) CloseFiles() { } // Ctl writes the command format, ... to the window's ctl file. -func (w *Win) Ctl(format string, args ...interface{}) error { +func (w *Win) Ctl(format string, args ...any) error { return w.Fprintf("ctl", format+"\n", args...) } @@ -373,7 +373,7 @@ func (w *Win) ID() int { return w.id } -func (w *Win) Name(format string, args ...interface{}) error { +func (w *Win) Name(format string, args ...any) error { name := fmt.Sprintf(format, args...) if err := w.Ctl("name %s", name); err != nil { return err @@ -382,7 +382,7 @@ func (w *Win) Name(format string, args ...interface{}) error { return nil } -func (w *Win) Fprintf(file, format string, args ...interface{}) error { +func (w *Win) Fprintf(file, format string, args ...any) error { f, err := w.fid(file) if err != nil { return err @@ -962,7 +962,7 @@ func (w *Win) Err(msg string) { Err(w.errorPrefix, msg) } -func (w *Win) Errf(format string, args ...interface{}) { +func (w *Win) Errf(format string, args ...any) { w.Err(fmt.Sprintf(format, args...)) } @@ -999,7 +999,7 @@ func Err(src, msg string) { } // Errf is like Err but accepts a printf-style formatting. -func Errf(src, format string, args ...interface{}) { +func Errf(src, format string, args ...any) { Err(src, fmt.Sprintf(format, args...)) } @@ -1011,7 +1011,7 @@ func Errf(src, format string, args ...interface{}) { // String fields are expected to be space terminated. // // It returns the rest of line after all the fields have been parsed. -func splitFields(line string, fields ...interface{}) (string, error) { +func splitFields(line string, fields ...any) (string, error) { n := 0 for len(fields) > 0 { switch f := fields[0].(type) { diff --git a/acme/acme_p9p.go b/acme/acme_p9p.go index 862f8175..77f975b6 100644 --- a/acme/acme_p9p.go +++ b/acme/acme_p9p.go @@ -1,3 +1,4 @@ +//go:build !plan9 // +build !plan9 package acme diff --git a/acme/acmego/main.go b/acme/acmego/main.go index 95bd2a1b..99cc19f9 100644 --- a/acme/acmego/main.go +++ b/acme/acmego/main.go @@ -22,7 +22,6 @@ // // .rs - rustfmt // .py - yapf -// package main import ( diff --git a/cmd/acme/dat.h.go b/cmd/acme/dat.h.go index 5720d92d..27125a92 100644 --- a/cmd/acme/dat.h.go +++ b/cmd/acme/dat.h.go @@ -61,7 +61,7 @@ type Fid struct { } type Xfid struct { - arg interface{} + arg any fcall *plan9.Fcall next *Xfid c chan func(*Xfid) diff --git a/cmd/acme/internal/addr/addr.go b/cmd/acme/internal/addr/addr.go index 52996225..5867907b 100644 --- a/cmd/acme/internal/addr/addr.go +++ b/cmd/acme/internal/addr/addr.go @@ -158,7 +158,7 @@ func regexp(showerr bool, t runes.Text, lim runes.Range, r runes.Range, pat []ru return sel.R[0] } -func Eval(showerr bool, t runes.Text, lim runes.Range, ar runes.Range, a interface{}, q0 int, q1 int, getc func(interface{}, int) rune, evalp *bool, qp *int) runes.Range { +func Eval(showerr bool, t runes.Text, lim runes.Range, ar runes.Range, a any, q0 int, q1 int, getc func(any, int) rune, evalp *bool, qp *int) runes.Range { r := ar q := q0 dir := None diff --git a/cmd/acme/internal/alog/alog.go b/cmd/acme/internal/alog/alog.go index 109564ee..b5f83d2d 100644 --- a/cmd/acme/internal/alog/alog.go +++ b/cmd/acme/internal/alog/alog.go @@ -13,7 +13,7 @@ func Init(w func(string)) { warn = w } -func Printf(format string, args ...interface{}) { +func Printf(format string, args ...any) { s := fmt.Sprintf(format, args...) if s != "" && s[len(s)-1] != '\n' { s += "\n" diff --git a/cmd/acme/internal/bufs/buf.go b/cmd/acme/internal/bufs/buf.go index 8af00016..89bcdfd6 100644 --- a/cmd/acme/internal/bufs/buf.go +++ b/cmd/acme/internal/bufs/buf.go @@ -10,7 +10,7 @@ const Len = 32 * 1024 const RuneLen = Len / runes.RuneSize var runesPool = sync.Pool{ - New: func() interface{} { return make([]rune, RuneLen) }, + New: func() any { return make([]rune, RuneLen) }, } func AllocRunes() []rune { @@ -25,7 +25,7 @@ func FreeRunes(buf []rune) { } var bytesPool = sync.Pool{ - New: func() interface{} { return make([]byte, Len) }, + New: func() any { return make([]byte, Len) }, } func AllocBytes() []byte { diff --git a/cmd/acme/internal/disk/buff.go b/cmd/acme/internal/disk/buff.go index c97fbbfb..e725130c 100644 --- a/cmd/acme/internal/disk/buff.go +++ b/cmd/acme/internal/disk/buff.go @@ -109,7 +109,7 @@ func (b *Buffer) Read(q0 int, s []rune) { for n > 0 { b.setCache(q0) - m := util.Min(n, len(b.c)-(q0-b.cq)) + m := min(n, len(b.c)-(q0-b.cq)) copy(s[:m], b.c[q0-b.cq:]) q0 += m s = s[m:] @@ -150,7 +150,7 @@ func (b *Buffer) Insert(q0 int, s []rune) { if b.cdirty { b.flushCache() } - m = util.Min(n, maxblock) + m = min(n, maxblock) var i int if b.bl == nil { /* allocate */ if len(b.c) != 0 { @@ -184,7 +184,7 @@ func (b *Buffer) Insert(q0 int, s []rune) { * Now at end of block. Take as much input * as possible and tack it on end of block. */ - m = util.Min(n, maxblock-len(b.c)) + m = min(n, maxblock-len(b.c)) n := len(b.c) b.resizeCache(n + m) copy(b.c[n:], s) diff --git a/cmd/acme/internal/dump/rows1.go b/cmd/acme/internal/dump/rows1.go index 0f07bca0..e852e4c4 100644 --- a/cmd/acme/internal/dump/rows1.go +++ b/cmd/acme/internal/dump/rows1.go @@ -28,7 +28,6 @@ import ( "9fans.net/go/cmd/acme/internal/bufs" "9fans.net/go/cmd/acme/internal/fileload" "9fans.net/go/cmd/acme/internal/ui" - "9fans.net/go/cmd/acme/internal/util" "9fans.net/go/cmd/acme/internal/wind" "9fans.net/go/draw" ) @@ -73,7 +72,7 @@ func Dump(row *wind.Row, file *string) { } } dumpid := make(map[*wind.File]int) - m := util.Min(bufs.RuneLen, row.Tag.Len()) + m := min(bufs.RuneLen, row.Tag.Len()) row.Tag.File.Read(0, r[:m]) n := 0 for n < m && r[n] != '\n' { @@ -82,7 +81,7 @@ func Dump(row *wind.Row, file *string) { fmt.Fprintf(b, "w %s\n", string(r[:n])) for i = 0; i < len(row.Col); i++ { c = row.Col[i] - m = util.Min(bufs.RuneLen, c.Tag.Len()) + m = min(bufs.RuneLen, c.Tag.Len()) c.Tag.File.Read(0, r[:m]) n = 0 for n < m && r[n] != '\n' { @@ -138,7 +137,7 @@ func Dump(row *wind.Row, file *string) { fmt.Fprintf(b, "F%11d %11d %11d %11d %11.7f %11d %s\n", i, j, w.Body.Q0, w.Body.Q1, 100.0*float64(w.R.Min.Y-c.R.Min.Y)/float64(c.R.Dy()), w.Body.Len(), fontname) } b.WriteString(wind.Winctlprint(w, false)) - m = util.Min(bufs.RuneLen, w.Tag.Len()) + m = min(bufs.RuneLen, w.Tag.Len()) w.Tag.File.Read(0, r[:m]) if !containsRune(r[:m], '|') { alog.Printf("dump: window %d has no | in tag %q!", w.ID, string(r[:m])) @@ -535,7 +534,7 @@ func Load(row *wind.Row, file *string, initing bool) bool { q0 = q1 } wind.Textshow(&w.Body, q0, q1, true) - w.Maxlines = util.Min(w.Body.Fr.NumLines, util.Max(w.Maxlines, w.Body.Fr.MaxLines)) + w.Maxlines = min(w.Body.Fr.NumLines, max(w.Maxlines, w.Body.Fr.MaxLines)) OnNewWindow(w) } return true diff --git a/cmd/acme/internal/edit/ecmd.go b/cmd/acme/internal/edit/ecmd.go index c520fa1a..2210e88e 100644 --- a/cmd/acme/internal/edit/ecmd.go +++ b/cmd/acme/internal/edit/ecmd.go @@ -849,7 +849,7 @@ type Looper struct { var loopstruct Looper // only one; X and Y can't nest -func alllooper(w *wind.Window, v interface{}) { +func alllooper(w *wind.Window, v any) { lp := v.(*Looper) cp := lp.cp // if(w->isscratch || w->isdir) @@ -870,7 +870,7 @@ func alllooper(w *wind.Window, v interface{}) { } } -func alllocker(w *wind.Window, v interface{}) { +func alllocker(w *wind.Window, v any) { if v.(bool) { util.Incref(&w.Ref) } else { @@ -1073,7 +1073,7 @@ type Tofile struct { r *String } -func alltofile(w *wind.Window, v interface{}) { +func alltofile(w *wind.Window, v any) { tp := v.(*Tofile) if tp.f != nil { return @@ -1106,7 +1106,7 @@ func tofile(r *String) *wind.File { return t.f } -func allmatchfile(w *wind.Window, v interface{}) { +func allmatchfile(w *wind.Window, v any) { tp := v.(*Tofile) if w.IsScratch || w.IsDir { return @@ -1256,7 +1256,7 @@ type Filecheck struct { r []rune } -func allfilecheck(w *wind.Window, v interface{}) { +func allfilecheck(w *wind.Window, v any) { fp := v.(*Filecheck) f := w.Body.File if w.Body.File == fp.f { diff --git a/cmd/acme/internal/edit/edit.go b/cmd/acme/internal/edit/edit.go index 1fba4171..421978b0 100644 --- a/cmd/acme/internal/edit/edit.go +++ b/cmd/acme/internal/edit/edit.go @@ -107,18 +107,18 @@ func editthread() { editerrc <- "" } -func allelogterm(w *wind.Window, x interface{}) { +func allelogterm(w *wind.Window, x any) { if ef := elogfind(w.Body.File); ef != nil { elogterm(ef) } } -func alleditinit(w *wind.Window, x interface{}) { +func alleditinit(w *wind.Window, x any) { wind.Textcommit(&w.Tag, true) wind.Textcommit(&w.Body, true) } -func allupdate(w *wind.Window, x interface{}) { +func allupdate(w *wind.Window, x any) { t := &w.Body if t.File.Curtext != t { // do curtext only return @@ -143,7 +143,7 @@ func allupdate(w *wind.Window, x interface{}) { wind.Winsettag(w) } -func editerror(format string, args ...interface{}) { +func editerror(format string, args ...any) { s := fmt.Sprintf(format, args...) freecmd() wind.All(allelogterm, nil) // truncate the edit logs diff --git a/cmd/acme/internal/edit/elog.go b/cmd/acme/internal/edit/elog.go index e0043157..8d7d6088 100644 --- a/cmd/acme/internal/edit/elog.go +++ b/cmd/acme/internal/edit/elog.go @@ -26,7 +26,6 @@ import ( "9fans.net/go/cmd/acme/internal/disk" "9fans.net/go/cmd/acme/internal/runes" "9fans.net/go/cmd/acme/internal/ui" - "9fans.net/go/cmd/acme/internal/util" "9fans.net/go/cmd/acme/internal/wind" ) @@ -359,8 +358,8 @@ func elogapply(f *elogFile) { if !warned { alog.Printf("elogapply: can't happen %d %d %d\n", t.Q0, t.Q1, f.Len()) } - t.Q1 = util.Min(t.Q1, f.Len()) - t.Q0 = util.Min(t.Q0, t.Q1) + t.Q1 = min(t.Q1, f.Len()) + t.Q0 = min(t.Q0, t.Q1) } if t.W != nil { diff --git a/cmd/acme/internal/exec/exec.go b/cmd/acme/internal/exec/exec.go index 942dd795..a9be4ee9 100644 --- a/cmd/acme/internal/exec/exec.go +++ b/cmd/acme/internal/exec/exec.go @@ -856,7 +856,7 @@ func indentval(s []rune) int { return Ioff } -func fixindent(w *wind.Window, arg interface{}) { +func fixindent(w *wind.Window, arg any) { w.Autoindent = wind.GlobalAutoindent } diff --git a/cmd/acme/internal/ui/look.go b/cmd/acme/internal/ui/look.go index b00b9d12..f401757c 100644 --- a/cmd/acme/internal/ui/look.go +++ b/cmd/acme/internal/ui/look.go @@ -26,7 +26,6 @@ import ( "9fans.net/go/cmd/acme/internal/alog" "9fans.net/go/cmd/acme/internal/bufs" "9fans.net/go/cmd/acme/internal/runes" - "9fans.net/go/cmd/acme/internal/util" "9fans.net/go/cmd/acme/internal/wind" "9fans.net/go/draw" "9fans.net/go/plan9/client" @@ -179,7 +178,7 @@ func Search(ct *wind.Text, r []rune) bool { alog.Printf("string too long\n") // TODO(rsc): why??????? return false } - maxn := util.Max(2*len(r), bufs.RuneLen) + maxn := max(2*len(r), bufs.RuneLen) s := bufs.AllocRunes() b := s[:0] around := 0 @@ -525,13 +524,13 @@ type Expand struct { Name []rune Bname string Jump bool - Arg interface{} - Agetc func(interface{}, int) rune + Arg any + Agetc func(any, int) rune A0 int A1 int } -func tgetc(a interface{}, n int) rune { +func tgetc(a any, n int) rune { t := a.(*wind.Text) if n >= t.Len() { return 0 diff --git a/cmd/acme/internal/ui/text.go b/cmd/acme/internal/ui/text.go index 64fcc9ad..6da9734f 100644 --- a/cmd/acme/internal/ui/text.go +++ b/cmd/acme/internal/ui/text.go @@ -29,8 +29,8 @@ import ( var Textcomplete func(*wind.Text) []rune func Textconstrain(t *wind.Text, q0 int, q1 int, p0 *int, p1 *int) { - *p0 = util.Min(q0, t.Len()) - *p1 = util.Min(q1, t.Len()) + *p0 = min(q0, t.Len()) + *p1 = min(q1, t.Len()) } func Texttype(t *wind.Text, r rune) { @@ -482,8 +482,8 @@ func Textselect(t *wind.Text) { } } -var BigLock = func(){} -var BigUnlock = func(){} +var BigLock = func() {} +var BigUnlock = func() {} /* * Release the button in less than DELAY ms and it's considered a null selection diff --git a/cmd/acme/internal/util/util.go b/cmd/acme/internal/util/util.go index 9302012d..c61ccc23 100644 --- a/cmd/acme/internal/util/util.go +++ b/cmd/acme/internal/util/util.go @@ -20,20 +20,6 @@ import ( "sync/atomic" ) -func Min(a int, b int) int { - if a < b { - return a - } - return b -} - -func Max(a int, b int) int { - if a > b { - return a - } - return b -} - func Fatal(s string) { log.Fatalf("acme: %s\n", s) } diff --git a/cmd/acme/internal/wind/cols.go b/cmd/acme/internal/wind/cols.go index 0f5704ac..76d198be 100644 --- a/cmd/acme/internal/wind/cols.go +++ b/cmd/acme/internal/wind/cols.go @@ -88,10 +88,10 @@ func Coladd(c *Column, w *Window, clone *Window, y int) *Window { } // new window must start after v's tag ends - y = util.Max(y, v.tagtop.Max.Y+adraw.Border()) + y = max(y, v.tagtop.Max.Y+adraw.Border()) // new window must start early enough to end before ymax - y = util.Min(y, ymax-minht) + y = min(y, ymax-minht) // if y is too small, too many windows in column if y < v.tagtop.Max.Y+adraw.Border() { @@ -105,8 +105,8 @@ func Coladd(c *Column, w *Window, clone *Window, y int) *Window { r.Max.Y = ymax adraw.Display.ScreenImage.Draw(r, adraw.TextCols[frame.BACK], nil, draw.ZP) r1 := r - y = util.Min(y, ymax-(v.Tag.Fr.Font.Height*v.Taglines+v.Body.Fr.Font.Height+adraw.Border()+1)) - r1.Max.Y = util.Min(y, v.Body.Fr.R.Min.Y+v.Body.Fr.NumLines*v.Body.Fr.Font.Height) + y = min(y, ymax-(v.Tag.Fr.Font.Height*v.Taglines+v.Body.Fr.Font.Height+adraw.Border()+1)) + r1.Max.Y = min(y, v.Body.Fr.R.Min.Y+v.Body.Fr.NumLines*v.Body.Fr.Font.Height) r1.Min.Y = Winresize(v, r1, false, false) r1.Max.Y = r1.Min.Y + adraw.Border() adraw.Display.ScreenImage.Draw(r1, adraw.Display.Black, nil, draw.ZP) @@ -217,7 +217,7 @@ func Colresize(c *Column, r draw.Rectangle) { r1.Max.Y += (w.R.Dy()-adraw.Border()-adraw.Font.Height)*new_/old + adraw.Border() + adraw.Font.Height } } - r1.Max.Y = util.Max(r1.Max.Y, r1.Min.Y+adraw.Border()+adraw.Font.Height) + r1.Max.Y = max(r1.Max.Y, r1.Min.Y+adraw.Border()+adraw.Font.Height) r2 := r1 r2.Max.Y = r2.Min.Y + adraw.Border() adraw.Display.ScreenImage.Draw(r2, adraw.Display.Black, nil, draw.ZP) @@ -326,7 +326,7 @@ Found: nl[i] = 0 } } else { - nnl := util.Min(onl+util.Max(util.Min(5, w.Taglines-1+w.Maxlines), onl/2), tot) + nnl := min(onl+max(min(5, w.Taglines-1+w.Maxlines), onl/2), tot) if nnl < w.Taglines-1+w.Maxlines { nnl = (w.Taglines - 1 + w.Maxlines + nnl) / 2 } @@ -339,7 +339,7 @@ Found: // prune from later window j = i + k if j < len(c.W) && nl[j] != 0 { - l = util.Min(dnl, util.Max(1, nl[j]/2)) + l = min(dnl, max(1, nl[j]/2)) nl[j] -= l nl[i] += l dnl -= l @@ -347,7 +347,7 @@ Found: // prune from earlier window j = i - k if j >= 0 && nl[j] != 0 { - l = util.Min(dnl, util.Max(1, nl[j]/2)) + l = min(dnl, max(1, nl[j]/2)) nl[j] -= l nl[i] += l dnl -= l diff --git a/cmd/acme/internal/wind/rows.go b/cmd/acme/internal/wind/rows.go index 5e6c9aab..484d184e 100644 --- a/cmd/acme/internal/wind/rows.go +++ b/cmd/acme/internal/wind/rows.go @@ -62,7 +62,7 @@ func RowAdd(row *Row, c *Column, x int) *Column { } adraw.Display.ScreenImage.Draw(r, adraw.Display.White, nil, draw.ZP) r1 := r - r1.Max.X = util.Min(x-adraw.Border(), r.Max.X-50) + r1.Max.X = min(x-adraw.Border(), r.Max.X-50) if r1.Dx() < 50 { r1.Max.X = r1.Min.X + 50 } @@ -231,7 +231,7 @@ func Rowwhich(row *Row, p draw.Point) *Text { return nil } -func All(f func(*Window, interface{}), arg interface{}) { +func All(f func(*Window, any), arg any) { for _, c := range TheRow.Col { for _, w := range c.W { f(w, arg) diff --git a/cmd/acme/internal/wind/text.go b/cmd/acme/internal/wind/text.go index 504731f3..49279e49 100644 --- a/cmd/acme/internal/wind/text.go +++ b/cmd/acme/internal/wind/text.go @@ -156,7 +156,7 @@ func textredraw(t *Text, r draw.Rectangle, f *draw.Font, b *draw.Image, odx int) maxt := MaxTab if t.What == Body { if t.W.IsDir { - maxt = util.Min(TABDIR, MaxTab) + maxt = min(TABDIR, MaxTab) } else { maxt = t.Tabstop } @@ -246,7 +246,7 @@ func Textcolumnate(t *Text, dlp []*Dirlist) { } mint := t.Fr.Font.StringWidth("0") // go for narrower tabs if set more than 3 wide - t.Fr.MaxTab = util.Min(MaxTab, TABDIR) * mint + t.Fr.MaxTab = min(MaxTab, TABDIR) * mint maxt := t.Fr.MaxTab colw := 0 var i int @@ -269,7 +269,7 @@ func Textcolumnate(t *Text, dlp []*Dirlist) { if colw == 0 { ncol = 1 } else { - ncol = util.Max(1, t.Fr.R.Dx()/colw) + ncol = max(1, t.Fr.R.Dx()/colw) } nrow := (len(dlp) + ncol - 1) / ncol @@ -382,13 +382,13 @@ func Textdelete(t *Text, q0 int, q1 int, tofile bool) { } } if q0 < t.IQ1 { - t.IQ1 -= util.Min(n, t.IQ1-q0) + t.IQ1 -= min(n, t.IQ1-q0) } if q0 < t.Q0 { - t.Q0 -= util.Min(n, t.Q0-q0) + t.Q0 -= min(n, t.Q0-q0) } if q0 < t.Q1 { - t.Q1 -= util.Min(n, t.Q1-q0) + t.Q1 -= min(n, t.Q1-q0) } if q1 <= t.Org { t.Org -= n diff --git a/cmd/acme/internal/wind/wind.go b/cmd/acme/internal/wind/wind.go index 4985e922..d6c999ac 100644 --- a/cmd/acme/internal/wind/wind.go +++ b/cmd/acme/internal/wind/wind.go @@ -231,12 +231,12 @@ func Winresize(w *Window, r draw.Rectangle, safe, keepextra bool) int { w.tagtop.Max.Y = r.Min.Y + adraw.Font.Height r1 := r - r1.Max.Y = util.Min(r.Max.Y, r1.Min.Y+w.Taglines*adraw.Font.Height) + r1.Max.Y = min(r.Max.Y, r1.Min.Y+w.Taglines*adraw.Font.Height) // If needed, recompute number of lines in tag. if !safe || !w.Tagsafe || !(w.Tag.All == r1) { w.Taglines = wintaglines(w, r) - r1.Max.Y = util.Min(r.Max.Y, r1.Min.Y+w.Taglines*adraw.Font.Height) + r1.Max.Y = min(r.Max.Y, r1.Min.Y+w.Taglines*adraw.Font.Height) } // If needed, resize & redraw tag. @@ -258,7 +258,7 @@ func Winresize(w *Window, r draw.Rectangle, safe, keepextra bool) int { r1.Max.Y = y + 1 adraw.Display.ScreenImage.Draw(r1, adraw.TagCols[frame.BORD], nil, draw.ZP) y++ - r1.Min.Y = util.Min(y, r.Max.Y) + r1.Min.Y = min(y, r.Max.Y) r1.Max.Y = r.Max.Y } else { r1.Min.Y = y @@ -270,7 +270,7 @@ func Winresize(w *Window, r draw.Rectangle, safe, keepextra bool) int { Textscrdraw(&w.Body) w.Body.All.Min.Y = oy } - w.Maxlines = util.Min(w.Body.Fr.NumLines, util.Max(w.Maxlines, w.Body.Fr.MaxLines)) + w.Maxlines = min(w.Body.Fr.NumLines, max(w.Maxlines, w.Body.Fr.MaxLines)) return w.R.Max.Y } @@ -613,7 +613,7 @@ const ( EVENTSIZE = 256 ) -func Winevent(w *Window, format string, args ...interface{}) { +func Winevent(w *Window, format string, args ...any) { if !w.External { return } diff --git a/cmd/acme/look1.go b/cmd/acme/look1.go index 5c208f7e..ccb79899 100644 --- a/cmd/acme/look1.go +++ b/cmd/acme/look1.go @@ -93,7 +93,7 @@ func startplumbing() { go plumbthread() } -func plumbgetc(a interface{}, n int) rune { +func plumbgetc(a any, n int) rune { r := a.([]rune) if n > len(r) { return 0 diff --git a/cmd/acme/util.go b/cmd/acme/util.go index 7bbfb312..6d6d5286 100644 --- a/cmd/acme/util.go +++ b/cmd/acme/util.go @@ -174,11 +174,11 @@ func flushwarnings() { warnings = nil } -func warning(md *base.Mntdir, format string, args ...interface{}) { +func warning(md *base.Mntdir, format string, args ...any) { addwarningtext(md, []rune(fmt.Sprintf(format, args...))) } -func rgetc(v interface{}, n int) rune { +func rgetc(v any, n int) rune { r := v.([]rune) if n >= len(r) { return 0 diff --git a/cmd/acme/xfid.go b/cmd/acme/xfid.go index 892944ac..f5c6e260 100644 --- a/cmd/acme/xfid.go +++ b/cmd/acme/xfid.go @@ -264,7 +264,7 @@ func xfidclose(x *Xfid) { w.Nomark = false t = &w.Body // before: only did this if !w->noscroll, but that didn't seem right in practice - wind.Textshow(t, util.Min(w.Wrselrange.Pos, t.Len()), util.Min(w.Wrselrange.End, t.Len()), true) + wind.Textshow(t, min(w.Wrselrange.Pos, t.Len()), min(w.Wrselrange.End, t.Len()), true) wind.Textscrdraw(t) case QWeditout: w.Editoutlk.Unlock() @@ -1057,7 +1057,7 @@ func xfidindexread(x *Xfid) { continue } buf.WriteString(wind.Winctlprint(w, false)) - m := util.Min(bufs.RuneLen, w.Tag.Len()) + m := min(bufs.RuneLen, w.Tag.Len()) w.Tag.File.Read(0, r[:m]) for i := 0; i < m && r[i] != '\n'; i++ { buf.WriteRune(r[i]) diff --git a/cmd/devdraw/devdraw.go b/cmd/devdraw/devdraw.go index a296d308..3e858a43 100644 --- a/cmd/devdraw/devdraw.go +++ b/cmd/devdraw/devdraw.go @@ -54,7 +54,7 @@ func drawrefreshscreen(l *DImage, client *Client) { } } -func drawrefresh(m *memdraw.Image, r draw.Rectangle, v interface{}) { +func drawrefresh(m *memdraw.Image, r draw.Rectangle, v any) { if v == nil { return } @@ -1513,9 +1513,9 @@ type eface struct { data unsafe.Pointer } -func funcPC(f interface{}) uintptr { +func funcPC(f any) uintptr { return *(*uintptr)(efaceOf(&f).data) } -func efaceOf(ep *interface{}) *eface { +func efaceOf(ep *any) *eface { return (*eface)(unsafe.Pointer(ep)) } diff --git a/cmd/devdraw/drawclient.go b/cmd/devdraw/drawclient.go index 07ac9fc5..e0b6436b 100644 --- a/cmd/devdraw/drawclient.go +++ b/cmd/devdraw/drawclient.go @@ -1,3 +1,4 @@ +//go:build ignore // +build ignore // #include diff --git a/cmd/devdraw/mklatinkbd.go b/cmd/devdraw/mklatinkbd.go index 0f2623f1..e48e37ed 100644 --- a/cmd/devdraw/mklatinkbd.go +++ b/cmd/devdraw/mklatinkbd.go @@ -1,3 +1,4 @@ +//go:build ignore // +build ignore /* diff --git a/cmd/sam/cmd.go b/cmd/sam/cmd.go index 2188b473..43eea6f2 100644 --- a/cmd/sam/cmd.go +++ b/cmd/sam/cmd.go @@ -122,7 +122,7 @@ Again: var Dflag bool -func debug(format string, args ...interface{}) { +func debug(format string, args ...any) { if !Dflag { return } diff --git a/cmd/sam/list.go b/cmd/sam/list.go index 7371cf74..f3a62ca9 100644 --- a/cmd/sam/list.go +++ b/cmd/sam/list.go @@ -1,5 +1,6 @@ // #include "sam.h" +//go:build ignore // +build ignore package main @@ -41,7 +42,7 @@ func dellist(l *List, i int) { /* * Add a new element, whose position is i, to the list */ -func inslist(l *List, i int, args ...interface{}) { +func inslist(l *List, i int, args ...any) { var list va_list va_start(list, i) diff --git a/cmd/sam/mesg.h.go b/cmd/sam/mesg.h.go index c2598b61..1116c801 100644 --- a/cmd/sam/mesg.h.go +++ b/cmd/sam/mesg.h.go @@ -2,7 +2,9 @@ package main import "unicode/utf8" -/* VERSION 1 introduces plumbing +/* + VERSION 1 introduces plumbing + 2 increases SNARFSIZE from 4096 to 32000 */ const VERSION = 2 diff --git a/cmd/sam/sam.go b/cmd/sam/sam.go index 2223939a..b48341b1 100644 --- a/cmd/sam/sam.go +++ b/cmd/sam/sam.go @@ -181,7 +181,7 @@ func rescue() { } } -func panic_(format string, args ...interface{}) { +func panic_(format string, args ...any) { if panicking++; panicking == 1 { s := fmt.Sprintf(format, args...) func() { diff --git a/cmd/sam/sys.go b/cmd/sam/sys.go index 9a6cf655..2760a5ec 100644 --- a/cmd/sam/sys.go +++ b/cmd/sam/sys.go @@ -82,7 +82,7 @@ var ( RXPATH = "ssh" ) -func dprint(z string, args ...interface{}) { +func dprint(z string, args ...any) { termwrite(fmt.Sprintf(z, args...)) } diff --git a/cmd/sam/unix.go b/cmd/sam/unix.go index 5ce81afe..f0336fad 100644 --- a/cmd/sam/unix.go +++ b/cmd/sam/unix.go @@ -1,3 +1,4 @@ +//go:build unix // +build unix package main diff --git a/cmd/sam/util.go b/cmd/sam/util.go index db82b163..43002240 100644 --- a/cmd/sam/util.go +++ b/cmd/sam/util.go @@ -35,10 +35,3 @@ func fbufalloc() []rune { func fbuffree(f []rune) { // free(f) } - -func min(a int, b int) int { - if a < b { - return a - } - return b -} diff --git a/cmd/samterm/mesg.h.go b/cmd/samterm/mesg.h.go index a40fb3ca..5ffb932c 100644 --- a/cmd/samterm/mesg.h.go +++ b/cmd/samterm/mesg.h.go @@ -2,7 +2,9 @@ package main import "unicode/utf8" -/* VERSION 1 introduces plumbing +/* + VERSION 1 introduces plumbing + 2 increases SNARFSIZE from 4096 to 32000 */ const VERSION = 2 diff --git a/cmd/samterm/notunix.go b/cmd/samterm/notunix.go index e1ec33cd..b3c3e037 100644 --- a/cmd/samterm/notunix.go +++ b/cmd/samterm/notunix.go @@ -1,3 +1,4 @@ +//go:build !unix // +build !unix package main diff --git a/cmd/samterm/rasp.go b/cmd/samterm/rasp.go index 0e565d81..0521387b 100644 --- a/cmd/samterm/rasp.go +++ b/cmd/samterm/rasp.go @@ -5,7 +5,7 @@ func rinit(r *Rasp) { r.sect = nil } -func free(interface{}) {} +func free(any) {} func rclear(r *Rasp) { var ns *Section diff --git a/cmd/samterm/unix.go b/cmd/samterm/unix.go index 665dbe82..5aadfc49 100644 --- a/cmd/samterm/unix.go +++ b/cmd/samterm/unix.go @@ -1,3 +1,4 @@ +//go:build unix // +build unix package main diff --git a/draw/doc.go b/draw/doc.go index 70278df6..322f3e05 100644 --- a/draw/doc.go +++ b/draw/doc.go @@ -3,12 +3,12 @@ // Plan 9 from User Space (http://swtch.com/plan9port/). // All graphics operations are done in the remote server. // -// Displays +// # Displays // // Graphics operations are mediated through a Display, obtained by calling Init. // See the Display documentation for details. // -// Colors and Pixel Formats +// # Colors and Pixel Formats // // This package represents colors as RGBA values, 8 bits per channel, // packed into a uint32 type called Color. Color implements the image/color @@ -48,21 +48,21 @@ // See https://9fans.github.io/plan9port/man/man7/color.html // for the details. // -// Image Format +// # Image Format // // Fonts and images as used by Image.Load, Image.Unload, Display.ReadImage, // and so on are stored in a machine-independent format defined by Plan 9. // See https://9fans.github.io/plan9port/man/man7/image.html // for the details. // -// Fonts +// # Fonts // // External bitmap fonts are described by a plain text file that can be // read using Display.OpenFont. // See https://9fans.github.io/plan9port/man/man7/font.html // for the details. // -// Font Names +// # Font Names // // Font names in this package (following Plan 9 from User Space) are a // small language describing a font. The most basic form is the name of @@ -129,7 +129,7 @@ // // /lib/font/bit/lucsans/euro.8.font,/mnt/font/LucidaGrande/30a/font // -// Libdraw Cheat Sheet +// # Libdraw Cheat Sheet // // The mapping from the Plan 9 C libdraw names defined in // to names in this package (omitting unchanged names) is: @@ -338,5 +338,4 @@ // but since Point and Rectangle are aliases for the types in package image, // the formats have changed: Points and Rectangles format as // (1,2) and (1,2)-(3,4) instead of [1 2] and [[1 2] [3 4]]. -// package draw diff --git a/draw/drawfcall/mux.go b/draw/drawfcall/mux.go index a7ff07a8..958ce4eb 100644 --- a/draw/drawfcall/mux.go +++ b/draw/drawfcall/mux.go @@ -1,3 +1,4 @@ +//go:build !plan9 // +build !plan9 package drawfcall diff --git a/draw/init.go b/draw/init.go index b5a654b7..4d217da1 100644 --- a/draw/init.go +++ b/draw/init.go @@ -44,7 +44,6 @@ import ( // Various routines flush automatically, notably Mousectl.Read. // Programs that receive directly from Mousectl.C should typically // Flush the display explicitly before the receive. -// type Display struct { Image *Image Screen *Screen @@ -321,7 +320,6 @@ func (d *Display) getimage0(i *Image) (*Image, error) { // response to a DPI change, meaning the caller should expect that // a Font's Height may be different after calling Attach as well. // The Font pointers themselves do not change. -// func (d *Display) Attach(ref int) error { d.mu.Lock() defer d.mu.Unlock() diff --git a/draw/memdraw/alloc.go b/draw/memdraw/alloc.go index 1c76b105..bafb199d 100644 --- a/draw/memdraw/alloc.go +++ b/draw/memdraw/alloc.go @@ -14,7 +14,7 @@ import ( "9fans.net/go/draw" ) -func allocmemimaged(r draw.Rectangle, chan_ draw.Pix, md *_Memdata, X interface{}) (*Image, error) { +func allocmemimaged(r draw.Rectangle, chan_ draw.Pix, md *_Memdata, X any) (*Image, error) { if r.Dx() <= 0 || r.Dy() <= 0 { return nil, fmt.Errorf("bad rectangle %v", r) } diff --git a/draw/memdraw/arctest.go b/draw/memdraw/arctest.go index 0b3875a3..cbf8ece1 100644 --- a/draw/memdraw/arctest.go +++ b/draw/memdraw/arctest.go @@ -1,3 +1,4 @@ +//go:build ignore // +build ignore // #include @@ -45,7 +46,7 @@ func main(argc int, argv []*int8) { func rdb() { } -func iprint(fmt_ *int8, args ...interface{}) int { +func iprint(fmt_ *int8, args ...any) int { var va va_list va_start(va, fmt_) var buf [1024]int8 diff --git a/draw/memdraw/draw.go b/draw/memdraw/draw.go index 44fd2e43..29e56989 100644 --- a/draw/memdraw/draw.go +++ b/draw/memdraw/draw.go @@ -831,14 +831,14 @@ type eface struct { data unsafe.Pointer } -func funcPC(f interface{}) uintptr { +func funcPC(f any) uintptr { return *(*uintptr)(efaceOf(&f).data) } -func efaceOf(ep *interface{}) *eface { +func efaceOf(ep *any) *eface { return (*eface)(unsafe.Pointer(ep)) } -func nameof(x interface{}) string { +func nameof(x any) string { f := runtime.FuncForPC(funcPC(x)) i := strings.LastIndex(f.Name(), ".") return f.Name()[i+1:] diff --git a/draw/memdraw/drawtest.go b/draw/memdraw/drawtest.go index b8580fea..6668ac56 100644 --- a/draw/memdraw/drawtest.go +++ b/draw/memdraw/drawtest.go @@ -1,3 +1,4 @@ +//go:build ignore // +build ignore package main @@ -63,7 +64,7 @@ var savedstbits []uint8 func rdb() { } -func iprint(format string, args ...interface{}) { +func iprint(format string, args ...any) { fmt.Fprintf(os.Stderr, format, args...) } diff --git a/draw/memdraw/iprint.go b/draw/memdraw/iprint.go index 1a828b9a..385628a7 100644 --- a/draw/memdraw/iprint.go +++ b/draw/memdraw/iprint.go @@ -5,5 +5,5 @@ package memdraw -func iprint(format string, args ...interface{}) { +func iprint(format string, args ...any) { } diff --git a/draw/memdraw/lalloc.go b/draw/memdraw/lalloc.go index f091d389..6be59d86 100644 --- a/draw/memdraw/lalloc.go +++ b/draw/memdraw/lalloc.go @@ -12,7 +12,7 @@ import ( var memlalloc_paint *Image -func LAlloc(s *Screen, screenr draw.Rectangle, refreshfn Refreshfn, refreshptr interface{}, val draw.Color) (*Image, error) { +func LAlloc(s *Screen, screenr draw.Rectangle, refreshfn Refreshfn, refreshptr any, val draw.Color) (*Image, error) { if memlalloc_paint == nil { var err error memlalloc_paint, err = AllocImage(draw.Rect(0, 0, 1, 1), draw.RGBA32) diff --git a/draw/memdraw/layerop.go b/draw/memdraw/layerop.go index 072e3c6a..b67ae612 100644 --- a/draw/memdraw/layerop.go +++ b/draw/memdraw/layerop.go @@ -4,7 +4,7 @@ import ( "9fans.net/go/draw" ) -func _layerop(fn func(*Image, draw.Rectangle, draw.Rectangle, interface{}, int), i *Image, r draw.Rectangle, clipr draw.Rectangle, etc interface{}, front *Image) { +func _layerop(fn func(*Image, draw.Rectangle, draw.Rectangle, any, int), i *Image, r draw.Rectangle, clipr draw.Rectangle, etc any, front *Image) { RECUR := func(a, b, c, d draw.Point) { _layerop(fn, i, draw.Rect(a.X, b.Y, c.X, d.Y), clipr, etc, front.Layer.rear) } @@ -45,7 +45,7 @@ Top: /* * Assumes incoming rectangle has already been clipped to i's logical r and clipr */ -func _memlayerop(fn func(*Image, draw.Rectangle, draw.Rectangle, interface{}, int), i *Image, screenr draw.Rectangle, clipr draw.Rectangle, etc interface{}) { +func _memlayerop(fn func(*Image, draw.Rectangle, draw.Rectangle, any, int), i *Image, screenr draw.Rectangle, clipr draw.Rectangle, etc any) { l := i.Layer if !draw.RectClip(&screenr, l.Screenr) { return diff --git a/draw/memdraw/ldraw.go b/draw/memdraw/ldraw.go index 103d2960..a56e8e03 100644 --- a/draw/memdraw/ldraw.go +++ b/draw/memdraw/ldraw.go @@ -19,7 +19,7 @@ type _Draw struct { op draw.Op } -func ldrawop(dst *Image, screenr draw.Rectangle, clipr draw.Rectangle, etc interface{}, insave int) { +func ldrawop(dst *Image, screenr draw.Rectangle, clipr draw.Rectangle, etc any, insave int) { d := etc.(*_Draw) if insave != 0 && d.dstlayer.save == nil { return diff --git a/draw/memdraw/lhide.go b/draw/memdraw/lhide.go index b00333ff..c7176160 100644 --- a/draw/memdraw/lhide.go +++ b/draw/memdraw/lhide.go @@ -20,7 +20,7 @@ import ( "9fans.net/go/draw" ) -func lhideop(src *Image, screenr draw.Rectangle, clipr draw.Rectangle, etc interface{}, insave int) { +func lhideop(src *Image, screenr draw.Rectangle, clipr draw.Rectangle, etc any, insave int) { l := etc.(*Layer) if src != l.save { /* do nothing if src is already in save area */ r := screenr.Sub(l.Delta) @@ -38,7 +38,7 @@ func memlhide(i *Image, screenr draw.Rectangle) { _memlayerop(lhideop, i, screenr, screenr, i.Layer) } -func lexposeop(dst *Image, screenr draw.Rectangle, clipr draw.Rectangle, etc interface{}, insave int) { +func lexposeop(dst *Image, screenr draw.Rectangle, clipr draw.Rectangle, etc any, insave int) { if insave != 0 { /* if dst is save area, don't bother */ return } diff --git a/draw/memdraw/lline.go b/draw/memdraw/lline.go index 2e461d65..98e4e07d 100644 --- a/draw/memdraw/lline.go +++ b/draw/memdraw/lline.go @@ -91,7 +91,7 @@ Top: _memlayerop(llineop, dst, r, r, &ll) } -func llineop(dst *Image, screenr draw.Rectangle, clipr draw.Rectangle, etc interface{}, insave int) { +func llineop(dst *Image, screenr draw.Rectangle, clipr draw.Rectangle, etc any, insave int) { ll := etc.(*lline) if insave != 0 && ll.dstlayer.save == nil { return diff --git a/draw/memdraw/lorigin.go b/draw/memdraw/lorigin.go index 0e956725..b9c74e66 100644 --- a/draw/memdraw/lorigin.go +++ b/draw/memdraw/lorigin.go @@ -103,5 +103,5 @@ func LOrigin(i *Image, log draw.Point, scr draw.Point) (int, error) { return 1, nil } -func LNoRefresh(l *Image, r draw.Rectangle, v interface{}) { +func LNoRefresh(l *Image, r draw.Rectangle, v any) { } diff --git a/draw/memdraw/lsetrefresh.go b/draw/memdraw/lsetrefresh.go index 6c930c02..45a1fc77 100644 --- a/draw/memdraw/lsetrefresh.go +++ b/draw/memdraw/lsetrefresh.go @@ -1,6 +1,6 @@ package memdraw -func LSetRefresh(i *Image, fn Refreshfn, ptr interface{}) bool { +func LSetRefresh(i *Image, fn Refreshfn, ptr any) bool { l := i.Layer if l.Refreshfn != nil && fn != nil { /* just change functions */ l.Refreshfn = fn diff --git a/draw/memdraw/memdraw.h.go b/draw/memdraw/memdraw.h.go index 7b1b3d70..1f640b3a 100644 --- a/draw/memdraw/memdraw.h.go +++ b/draw/memdraw/memdraw.h.go @@ -38,7 +38,7 @@ type Image struct { Width uint32 /* width in words of a single scan line */ Layer *Layer /* nil if not a layer*/ Flags uint32 - X interface{} + X any ScreenRef int /* reference count if this is a screen */ shift [draw.NChan]uint diff --git a/draw/memdraw/memlayer.h.go b/draw/memdraw/memlayer.h.go index 6be4ecce..9659d56a 100644 --- a/draw/memdraw/memlayer.h.go +++ b/draw/memdraw/memlayer.h.go @@ -2,7 +2,7 @@ package memdraw import "9fans.net/go/draw" -type Refreshfn func(*Image, draw.Rectangle, interface{}) +type Refreshfn func(*Image, draw.Rectangle, any) type Screen struct { Frontmost *Image /* frontmost layer on screen */ @@ -20,5 +20,5 @@ type Layer struct { clear bool /* layer is fully visible */ save *Image /* save area for obscured parts */ Refreshfn Refreshfn /* function to call to refresh obscured parts if save==nil */ - Refreshptr interface{} /* argument to refreshfn */ + Refreshptr any /* argument to refreshfn */ } diff --git a/draw/memdraw/mkcmap.go b/draw/memdraw/mkcmap.go index bb57af7d..e5ca8a81 100644 --- a/draw/memdraw/mkcmap.go +++ b/draw/memdraw/mkcmap.go @@ -3,6 +3,7 @@ // #include // #include +//go:build ignore // +build ignore /* diff --git a/games/spacewar/spacewar.go b/games/spacewar/spacewar.go index abe4151d..d6153221 100644 --- a/games/spacewar/spacewar.go +++ b/games/spacewar/spacewar.go @@ -80,13 +80,6 @@ type SpacewarPDP1 struct { oldpix [][]uint8 } -func min(a, b int) int { - if a < b { - return a - } - return b -} - func (m *SpacewarPDP1) Init(d *draw.Display) { m.disp = d m.mc = d.InitMouse() diff --git a/plan9/client/dial.go b/plan9/client/dial.go index 0a3f0580..2c01986b 100644 --- a/plan9/client/dial.go +++ b/plan9/client/dial.go @@ -1,3 +1,4 @@ +//go:build !plan9 // +build !plan9 package client diff --git a/plan9/client/fsys.go b/plan9/client/fsys.go index ea4b18a1..0dd1d352 100644 --- a/plan9/client/fsys.go +++ b/plan9/client/fsys.go @@ -1,3 +1,4 @@ +//go:build !plan9 // +build !plan9 package client