Kaynağa Gözat

Support up to 2 args for launcher

master
Arun Prakash Jana 5 yıl önce
ebeveyn
işleme
729c13b162
Veri tabanında bu imza için bilinen anahtar bulunamadı GPG Anahtar Kimliği: A75979F35C080412
2 değiştirilmiş dosya ile 23 ekleme ve 6 silme
  1. +1
    -1
      README.md
  2. +22
    -5
      nnn.c

+ 1
- 1
README.md Dosyayı Görüntüle

@@ -107,7 +107,7 @@ Have fun with it! Missing a feature? Want to contribute? Head to the rolling [To
- Copy absolute file paths with quotes
- Change directory at exit (*easy* shell integration)
- Open any file in EDITOR (fallback vi) or PAGER (fallback less)
- GUI app launcher
- GUI app launcher (maximum 2 space-separated arguments)
- Terminal screensaver/locker integration
- Unicode support
- Highly optimized code, minimal resource usage


+ 22
- 5
nnn.c Dosyayı Görüntüle

@@ -2046,9 +2046,6 @@ static int show_help(char *path)
return 0;
}

static int sum_bsizes(const char */*fpath*/, const struct stat *sb,
int typeflag, struct FTW */*ftwbuf*/);

static int sum_bsizes(const char *fpath, const struct stat *sb,
int typeflag, struct FTW *ftwbuf)
{
@@ -2984,7 +2981,8 @@ nochange:
break;

/* Allow only relative, same dir paths */
if (tmp[0] == '/' || strcmp(xbasename(tmp), tmp) != 0) {
if ((sel != SEL_LAUNCH) &&
(tmp[0] == '/' || strcmp(xbasename(tmp), tmp) != 0)) {
printmsg(messages[STR_INPUT_ID]);
goto nochange;
}
@@ -3005,7 +3003,26 @@ nochange:
}

if (sel == SEL_LAUNCH) {
spawn(tmp, NULL, NULL, path, F_NOWAIT | F_NOTRACE);
uint args = 0;
char *ptr = tmp, *ptr1 = NULL, *ptr2 = NULL;

while (*ptr) {
if (*ptr == ' ') {
*ptr = '\0';
if (args == 0)
ptr1 = ptr + 1;
else if (args == 1)
ptr2 = ptr + 1;
else
break;

++args;
}

++ptr;
}

spawn(tmp, ptr1, ptr2, path, F_NOWAIT | F_NOTRACE);
break;
}



Yükleniyor…
İptal
Kaydet