فهرست منبع

make CTRL+Z a no-op operation on Windows

Signed-off-by: Guillaume Lours <[email protected]>
Guillaume Lours 2 ماه پیش
والد
کامیت
be8c7e6c60
3فایلهای تغییر یافته به همراه51 افزوده شده و 1 حذف شده
  1. 1 1
      cmd/formatter/shortcut.go
  2. 25 0
      cmd/formatter/shortcut_unix.go
  3. 25 0
      cmd/formatter/shortcut_windows.go

+ 1 - 1
cmd/formatter/shortcut.go

@@ -322,7 +322,7 @@ func (lk *LogKeyboard) HandleKeyEvents(ctx context.Context, event keyboard.KeyEv
 		// will notify main thread to kill and will handle gracefully
 		lk.signalChannel <- syscall.SIGINT
 	case keyboard.KeyCtrlZ:
-		_ = syscall.Kill(0, syscall.SIGSTOP)
+		handleCtrlZ()
 	case keyboard.KeyEnter:
 		newLine()
 		lk.printNavigationMenu()

+ 25 - 0
cmd/formatter/shortcut_unix.go

@@ -0,0 +1,25 @@
+//go:build !windows
+
+/*
+   Copyright 2024 Docker Compose CLI authors
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+*/
+
+package formatter
+
+import "syscall"
+
+func handleCtrlZ() {
+	_ = syscall.Kill(0, syscall.SIGSTOP)
+}

+ 25 - 0
cmd/formatter/shortcut_windows.go

@@ -0,0 +1,25 @@
+//go:build windows
+
+/*
+   Copyright 2024 Docker Compose CLI authors
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+*/
+
+package formatter
+
+// handleCtrlZ is a no-op on Windows as SIGSTOP is not supported
+func handleCtrlZ() {
+	// Windows doesn't support SIGSTOP/SIGCONT signals
+	// Ctrl+Z behavior is handled differently by the Windows terminal
+}