mirror of
https://github.com/zyedidia/micro.git
synced 2026-03-15 21:37:09 +09:00
Action subpackage
This commit is contained in:
35
cmd/micro/action/actions_posix.go
Normal file
35
cmd/micro/action/actions_posix.go
Normal file
@@ -0,0 +1,35 @@
|
||||
// +build linux darwin dragonfly solaris openbsd netbsd freebsd
|
||||
|
||||
package action
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
|
||||
"github.com/zyedidia/micro/cmd/micro/screen"
|
||||
"github.com/zyedidia/micro/cmd/micro/util"
|
||||
)
|
||||
|
||||
// Suspend sends micro to the background. This is the same as pressing CtrlZ in most unix programs.
|
||||
// This only works on linux and has no default binding.
|
||||
// This code was adapted from the suspend code in nsf/godit
|
||||
func (*BufHandler) Suspend() bool {
|
||||
screenWasNil := screen.Screen == nil
|
||||
|
||||
if !screenWasNil {
|
||||
screen.Screen.Fini()
|
||||
screen.Screen = nil
|
||||
}
|
||||
|
||||
// suspend the process
|
||||
pid := syscall.Getpid()
|
||||
err := syscall.Kill(pid, syscall.SIGSTOP)
|
||||
if err != nil {
|
||||
util.TermMessage(err)
|
||||
}
|
||||
|
||||
if !screenWasNil {
|
||||
screen.Init()
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
Reference in New Issue
Block a user