mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-12 19:53:24 +02:00
Fix askpass.go on shm_syscall based systems
This commit is contained in:
@@ -53,11 +53,6 @@ type MMap interface {
|
||||
FileSystemName() string
|
||||
Stat() (fs.FileInfo, error)
|
||||
Flush() error
|
||||
Seek(offset int64, whence int) (int64, error)
|
||||
Read(b []byte) (int, error)
|
||||
ReadWithSize() ([]byte, error)
|
||||
Write(p []byte) (n int, err error)
|
||||
WriteWithSize([]byte) error
|
||||
}
|
||||
|
||||
type AccessFlags int
|
||||
@@ -135,14 +130,17 @@ func read_with_size(f *os.File) ([]byte, error) {
|
||||
return read_till_buf_full(f, make([]byte, size))
|
||||
}
|
||||
|
||||
func write_with_size(f *os.File, b []byte) error {
|
||||
func WriteWithSize(self MMap, b []byte, at int) error {
|
||||
szbuf := []byte{0, 0, 0, 0}
|
||||
binary.BigEndian.PutUint32(szbuf, uint32(len(b)))
|
||||
_, err := f.Write(szbuf)
|
||||
if err == nil {
|
||||
_, err = f.Write(b)
|
||||
}
|
||||
return err
|
||||
copy(self.Slice()[at:], szbuf)
|
||||
copy(self.Slice()[at+4:], b)
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReadWithSize(self MMap, at int) []byte {
|
||||
size := int(binary.BigEndian.Uint32(self.Slice()[at : at+4]))
|
||||
return self.Slice()[at+4 : at+4+size]
|
||||
}
|
||||
|
||||
func test_integration_with_python(args []string) (rc int, err error) {
|
||||
@@ -167,7 +165,7 @@ func test_integration_with_python(args []string) (rc int, err error) {
|
||||
if err != nil {
|
||||
return 1, err
|
||||
}
|
||||
mmap.WriteWithSize(data)
|
||||
WriteWithSize(mmap, data, 0)
|
||||
mmap.Close()
|
||||
fmt.Println(mmap.Name())
|
||||
}
|
||||
|
||||
@@ -57,26 +57,6 @@ func (self *file_based_mmap) Flush() error {
|
||||
return unix.Msync(self.region, unix.MS_SYNC)
|
||||
}
|
||||
|
||||
func (self *file_based_mmap) Seek(offset int64, whence int) (int64, error) {
|
||||
return self.f.Seek(offset, whence)
|
||||
}
|
||||
|
||||
func (self *file_based_mmap) Read(b []byte) (int, error) {
|
||||
return self.f.Read(b)
|
||||
}
|
||||
|
||||
func (self *file_based_mmap) Write(b []byte) (int, error) {
|
||||
return self.f.Write(b)
|
||||
}
|
||||
|
||||
func (self *file_based_mmap) WriteWithSize(b []byte) error {
|
||||
return write_with_size(self.f, b)
|
||||
}
|
||||
|
||||
func (self *file_based_mmap) ReadWithSize() ([]byte, error) {
|
||||
return read_with_size(self.f)
|
||||
}
|
||||
|
||||
func (self *file_based_mmap) FileSystemName() string {
|
||||
return self.f.Name()
|
||||
}
|
||||
|
||||
@@ -101,30 +101,6 @@ func (self *syscall_based_mmap) Slice() []byte {
|
||||
return self.region
|
||||
}
|
||||
|
||||
func (self *syscall_based_mmap) Seek(offset int64, whence int) (int64, error) {
|
||||
return self.f.Seek(offset, whence)
|
||||
}
|
||||
|
||||
func (self *syscall_based_mmap) Read(b []byte) (int, error) {
|
||||
return self.f.Read(b)
|
||||
}
|
||||
|
||||
func (self *syscall_based_mmap) Write(b []byte) (int, error) {
|
||||
return self.f.Write(b)
|
||||
}
|
||||
|
||||
func (self *syscall_based_mmap) WriteWithSize(b []byte) error {
|
||||
szbuf := []byte{0, 0, 0, 0}
|
||||
binary.BigEndian.PutUint32(szbuf, uint32(len(b)))
|
||||
copy(self.Slice(), szbuf)
|
||||
copy(self.Slice()[4:], b)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (self *syscall_based_mmap) ReadWithSize() ([]byte, error) {
|
||||
return read_with_size(self.f)
|
||||
}
|
||||
|
||||
func (self *syscall_based_mmap) Close() (err error) {
|
||||
if self.region != nil {
|
||||
self.f.Close()
|
||||
|
||||
Reference in New Issue
Block a user