From e9e5a53f276736841f37c6becce78d516c94a7ef Mon Sep 17 00:00:00 2001 From: Tomas Rivera <137088692+Totorile1@users.noreply.github.com> Date: Mon, 30 Mar 2026 13:36:56 +0200 Subject: [PATCH] repaired bug that closed the program when nvim was closed --- a.out | Bin 26240 -> 26320 bytes startup.c | 21 +++++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/a.out b/a.out index 1402e5524360cc140e1a9dfc10dc6cb82bc7c8d8..0a2f402dc25b98687f7c34ba3f15c1c71bec2730 100755 GIT binary patch delta 5381 zcmZ`-dsJ0b8b9aqkW0XQpxld!TvQ%{aPM_Az=i|@I~W-F$QQ~(Gqs0QFuH0A9Hj9| ztUCjYpEp>*u$P>0wK28PG-9T0HJaUBpO5R3W!o6}k9Sh$kZ)Pj`6JgsvNTCg3 zZuvpMZ4jI%!Y3DSF03A}aZslvmYO2m^6#lL!Yl6;mbt>RA8f72*{weL*{%ZX19Ir% zR%8#B@O5GlckG8sd0&9Gf}IVP?M>N9 zTfnXX%i(QGHys1J3oHkrDLo|HU8I7=pxu^!@`H8TqvCl+OgTTGZBELwyP}O9XutoQPQg2tM^KVh>JtG^Z+$%}JG4EK~PJz=Ib7*KC0*_?OJD%1q@KDCQr)W)#8t0Zqh6~MIFfN1dj<|FE#0=&9K8OkyE){Qz+rXcO)lzF3v^u)_)uL8>$0{6 zxioN1Jp#HU&|4bNcJtdx16Scx68Jzp2BVVP4{a?$@b?`G9gEuf)W3i&4Sc1B+-$t_ z#t*T4l(q>!8^K`w!X)Ce%t5Y1%qf~OQrA#`wBf(0xjE7ddc>D z^efq1Ps=W0{AL}iw#+C|YfC$j68Oy$C|g`~L$*X~M_0(}=(Ev@as}NSJxrcW?&Q(F zTvS<-yI*Mw8;+dqr2_!Am%3LUsJE8oYPJ^s96+Iy-`o~`eFQz0Jlz?MW^wOYpt*P7 z-=Jg3W6}@gO44qg_Psnbn3;75Ql&LQ9fLt*yUrWB-wqm`;t4;GQgswfNlCR0L$sn} z8$=f-Bv4aI#n{(iT-*}0wTwhb=sU3*LWCBGiFcwHIHCh-gvHiIal=whN##d)ZP|t2|IN+hLTsHIh4n- zKk!f%eyb1V5q27m$Whz5+Safg?7_#p>7f`Nc6ewPZw6`nn9L~)VRiY=>Od2gg24pW zvdX<)KLl09aUPLq4ffj-n^2{6(9p2Y74{Rx(c5E&TRxvaACE~Gb7cZ-8Zu@o&3U^y zs|3!}M=7m&{{T<}XrHgy#opCuB{P$*#iW`WEI8bI(EJFz|w&T!P$=q`XI{Fj#8UapwOrPera0aN+ zAoP7^6mseUnlyH;s|K69(aJt`@)hn46nU}GF3j*9BkFdMMc5R$jT3=#wtSBW=O>O&Erzh|Wvj6j)sf*hBgyw4nKrtRAFgUSH-k-Rq;) z=RUyp-!`NfhWavYwWFRzoWdrA2KIiAqYzq! z-h}-y=b!q~xaP}Xa3%PaXM({V=rzz^LT~sg7#s|{w6C#8LibWaaYjM}ta*QyiUy&1 z`gL$TbjQhHu!9~hzDMq$Eyc0&CVH>fEB~C%;Q1L1nVecS8dh%9Q;GVT*|i|X{(|Mc z=E-KvK9QuOgMSMZ>)wdF5E9tq(8C}1d zTog9Pyz!Vf9P>uAqlkU=yC~~kxUm>YT=t}w-ttw4)6!B#pf;~hCZmp$> zvWJe9di^~(QCaxQm8IRd!G!Bjx^9&7hbYT7@|SrXOBU#ePY;$}da^9hSA8m|31U3+PDUrx5}di-^76h`K2){eZu!LKf_`$zxra`CJY&wBA( z!_WBFU~5OP{J8CJ2%CN4*)J^5!;<^q;csF{u@N;_y7tdH8xm{$oyfnxw50I9s&QH4 zvL#M5eYO1O7TFsE`p^a794l@8vy@5_wc^zh$ntB^0ReNv8 zm>FxeR8#G>b{LV@K^v>HBlG!61VM0~tiIb}#;mD(DXFHBmw%1d+HJ&MH=U@-c9@Z9 z>Zd8G)*ETAts+0ot(}Z`+EVMa-ua<+qBh&16zgv^^^26W&}+T(-)_#r?8pKC>t0=W zx7GY3;-(V|v#sWT5D&#K%C?$+KhkIpkok)+hc+(CzP&D&Ox0hB!CDlQ`|0$<+17~J SI`7#9~CTjM_|v6s=<>ffPyI z(4C@x&8U+Hrb%OBr-LE3#7uNCiNPi|B%QRxv=#Hvd$pN@v53Za`~7F{Mbl~jnREa1 zegA*n|2g-b+kZ-KIVE>^-9=fFkfMl^!Vm7u{!LtuI|6&$J5T4uopMIdDJQw*yyn<( z5ol`3Fw3B0kTNSG_RN~^YBef?hYW3&vw-GuicwB6%9+~F4iH1rG1=uhP!{3FG@X?* z+^WIe)HKPG{y&_nEg7!9l1LR}nu3NiJp==2^JP!i9Dn@q}!0DAWc9@rRtaj+YIC;BW2Q?(VmIyXD*o}Jr0Djq(x`Q zZRE24l19gQsmEF?F9Y(BKV~ZpF7{G5#w)iAW+FNSKpm~o5e!& z?enO~KBYMpQ)ZJa=(I)p1g<<-KT=fXay+flWrI`p<|3S;B&QKKGNS8(VS}U8z4Iy9 zZBhp8T*qqy$4a*w*t21SotL-Jz!L1g|n1;d51B>yDNk64JJ+vMyhmxW9Lvd#YtyTCesyfpJ-ChDdci_Xa!jBEv%o4!R`QS zhCCaKs1a-rSPpnos%Sr06)bNcQ)=l$uwHk(J;kJ;8%TD0NC7+j7Pf@~V7I#Clg!P@ z#*SM?lTOdLJ$BxxreMBNW&kxAt1AqcZ?Lfm@pK)Q@GUjuc2@_M*mtE&Z(jL5Nz&75 z@N^^>A;)+?k2B`b z(z*mb!kEuLtyADv8FP?n9Rk0?IFWJ74YaSPJk`GUkxg!U8W~%;&t;CGdR49K2emz_&Bzx02Q&a5iIpLuoBb#tPJTfDodD z3PWg337!s|41|^74K*A623v5nUd9M|}$3m7&dYMevGx z4Rm>MpdzRp;pQrWBPdiJd|MrcQ+dHVjy4_qJtv}Pp|&&XMX(jY^XlyDm{+sKcd#3j z(A)~{5L%4ou>{*{{{__+Zt_&LALcx_W=Cu2V_S_VVZDOk!t(&EUppSN|23cMY3mWr zFE+3W{+Dv~rsw^+)RYKNT z$T@Z&2XO2TZ$I8-t1QqQZTxPAaXPmgvd1RV(`ifGh2L=HXVk;cJi6R(NKVhnzEmJd zM|c&F^3-6i_ao+%_E@z5!(hL&*CORk(*5ZvG5j&1E}?Dd8IBwT9|pEZ3}J3Ab){F& zdIQd-ZMvgvI%;cgdrb`JOsFABsT)yx&qb*l(RxYnDrWK^IT6sl3L8 zrXaf1F0QuS`pF$Ak$X#t6-J2^l+Z3+*J)i=?m~js<(oSLUDyi-3%rX}!D!P&R8_`# zM50X}bR@T+O6e^_!+(SDpSzYm&6;Ad-$7Tire>vqlQ!opRay%#%tclSe%TbSv=_#J zSNEcS>N@Pv6V`9(?(9r?H?7b9z8s|2vhyZy8{s*LY{U~NS=#nh(^)0-NP^l)-)85e zEx;g-^5>BfeACNoH5=o`T5(J4y+bxJK1Q!9=v|X+_h+a8rTW?*eH-t9&_se` zWE;2J)E9?D?SYSu@)xoCd%EJA>fV78t)t7E7B&Z3N8>ivsDGez|Fc<3l;Af?>px@L zMjYGYxhoMc!>e?cFY`s9bmTIQ4Ar@3Vr#r#3wMLiX$k8grf z@p$JGmV4|m#jR0nn*&?b-*laKq!b_HY>j%t@=*M^SiU7z!PZ1Cm*sR1loeSq#-azz z>w$S4FhBo;C0ssoNn`yUin16=+<|Vze8*wI=`LggHC80M!iWVH>}MgFw7()*_ET?# zFVKg#8w-CFvaB#Z`(q+d8ZzwsjmNT&QY(F~tq(>JpX4kDXia6Z+sWT;5c57UWT#z~ zi{vUgTbb;-#9x6BoQRuPTPcvR+@jRrQkdA?vS^-6efRCLsAaUaD$mx%$1h|q?XAj? z8>qL+GpX~|k7?K{kSvm28qA_gRe2arYPBcHoJcOrvL8vt{Wp`Ut9|kd^f;bzvF%22ZQffp;fA{e6b5Y$FfAC|ud*iBeGJZx_scLntyn+s`_SwwX z>LYD+zRQdxQ?I8$tT(wa>ho;_%Ol)hsIflZ^1D^^N`3l&00hzW-v9sr diff --git a/startup.c b/startup.c index fa6f9c0..3fe1946 100644 --- a/startup.c +++ b/startup.c @@ -5,6 +5,7 @@ #include #include #include +#include // for waitpid #include // for PATH_MAX #include #include @@ -155,13 +156,25 @@ char* ncursesSelect(char **options, char *optionsType, size_t optionsNumber, int int openNvim(char *path, int debug) { - if (debug) {printf("\e[0;32m[DEBUG]\e[0m Opening with command:\nnvim +:NvimTreeOpen %s\n", path);} - execlp("nvim", + pid_t pid = fork(); // this forking allows the programs to return when nvim is closed + if (pid < 0) { + perror("\e[0;31mERROR: fork failed\e[0m\n"); + return 1; + } else if (pid == 0) { + // Child process: replace with nvim + if (debug) {printf("\e[0;32m[DEBUG]\e[0m Opening with command:\nnvim +:NvimTreeOpen %s\n", path);} + execlp("nvim", "nvim", // we can specify each argument for nvim by passing more args to execlp path, NULL); - perror("\e[0;31mERROR: execlp failed. Nvim might be not installed or not in path.\e[0m\n"); - return 1; + perror("\e[0;31mERROR: execlp failed. Nvim might be not installed or not in path.\e[0m\n"); + exit(1); + } else { + // Parent process: wait for child to finish + int status; + waitpid(pid, &status, 0); + } + return 0; }