X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=misc.go;fp=misc.go;h=2e605076085eac55bde3a84c817bf52252ff3bde;hb=1d028880cfb17a7c8a9e3b1f54cf1e980baca63d;hp=0000000000000000000000000000000000000000;hpb=c42f577140459f548b1d7b085cd4dc2717e060c6;p=nsscash%2Fnsscash.git diff --git a/misc.go b/misc.go new file mode 100644 index 0000000..2e60507 --- /dev/null +++ b/misc.go @@ -0,0 +1,37 @@ +// Miscellaneous functions + +// Copyright (C) 2019 Simon Ruderich +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package main + +import ( + "bytes" + "fmt" +) + +func alignBufferTo(b *bytes.Buffer, align int) { + if align <= 0 { + panic(fmt.Sprintf("invalid alignment %v", align)) + } + + l := b.Len() + if l%align == 0 { + return + } + for i := 0; i < align-l%align; i++ { + b.WriteByte(0) + } +}