mirror of
				https://github.com/sammy-ette/Hilbish
				synced 2025-08-10 02:52:03 +00:00 
			
		
		
		
	Compare commits
	
		
			No commits in common. "41e5e3f789b2c3b730e48b1216d80ded6f768f03" and "bfa3b55542e35a4cea7e8acc7d0362c0c92c614d" have entirely different histories.
		
	
	
		
			41e5e3f789
			...
			bfa3b55542
		
	
		
@ -31,8 +31,6 @@ hilbish.run('wc -l', {
 | 
			
		||||
### Fixed
 | 
			
		||||
- Fix ansi attributes causing issues with text when cut off in greenhouse
 | 
			
		||||
- `exec` command should return if no arg presented
 | 
			
		||||
- Commanders can now be cancelled by Ctrl-C and wont hang the shell anymore.
 | 
			
		||||
See [issue 198](https://github.com/Rosettea/Hilbish/issues/198).
 | 
			
		||||
 | 
			
		||||
## [2.2.3] - 2024-04-27
 | 
			
		||||
### Fixed
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,3 @@
 | 
			
		||||
> [!TIP]
 | 
			
		||||
> Check out [Hilbish: Midnight Edition](https://github.com/Rosettea/Hilbish/tree/midnight-edition) if you want to use C Lua, LuaJIT or anything related!
 | 
			
		||||
 | 
			
		||||
<img src="./assets/hilbish-logo-and-text.png" width=512><br>
 | 
			
		||||
<blockquote>
 | 
			
		||||
🌓 The Moon-powered shell! A comfy and extensible shell for Lua fans! 🌺 ✨
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										30
									
								
								exec.go
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								exec.go
									
									
									
									
									
								
							@ -8,7 +8,6 @@ import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io"
 | 
			
		||||
	"os"
 | 
			
		||||
	"os/signal"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
	"runtime"
 | 
			
		||||
	"strings"
 | 
			
		||||
@ -354,34 +353,7 @@ func execHandle(bg bool) interp.ExecHandlerFunc {
 | 
			
		||||
			sinks.Set(rt.StringValue("out"), rt.UserDataValue(stdout.ud))
 | 
			
		||||
			sinks.Set(rt.StringValue("err"), rt.UserDataValue(stderr.ud))
 | 
			
		||||
 | 
			
		||||
			t := rt.NewThread(l)
 | 
			
		||||
			sig := make(chan os.Signal)
 | 
			
		||||
			exit := make(chan bool)
 | 
			
		||||
 | 
			
		||||
			luaexitcode := rt.IntValue(63)
 | 
			
		||||
			var err error
 | 
			
		||||
			go func() {
 | 
			
		||||
				defer func() {
 | 
			
		||||
					if r := recover(); r != nil {
 | 
			
		||||
						exit <- true
 | 
			
		||||
					}
 | 
			
		||||
				}()
 | 
			
		||||
 | 
			
		||||
				signal.Notify(sig, os.Interrupt)
 | 
			
		||||
				select {
 | 
			
		||||
					case <-sig:
 | 
			
		||||
						t.KillContext()
 | 
			
		||||
						return
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
			}()
 | 
			
		||||
 | 
			
		||||
			go func() {
 | 
			
		||||
				luaexitcode, err = rt.Call1(t, rt.FunctionValue(cmd), rt.TableValue(luacmdArgs), rt.TableValue(sinks))
 | 
			
		||||
				exit <- true
 | 
			
		||||
			}()
 | 
			
		||||
 | 
			
		||||
			<-exit
 | 
			
		||||
			luaexitcode, err := rt.Call1(l.MainThread(), rt.FunctionValue(cmd), rt.TableValue(luacmdArgs), rt.TableValue(sinks))
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				fmt.Fprintln(os.Stderr, "Error in command:\n" + err.Error())
 | 
			
		||||
				return interp.NewExitStatus(1)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user