瀏覽代碼

Select file if file path is passed

master
Arun Prakash Jana 4 年之前
父節點
當前提交
56886922a6
沒有發現已知的金鑰在資料庫的簽署中 GPG 金鑰 ID: A75979F35C080412
共有 1 個檔案被更改,包括 16 行新增8 行删除
  1. +16
    -8
      src/nnn.c

+ 16
- 8
src/nnn.c 查看文件

@@ -401,6 +401,7 @@ static char g_pipepath[TMP_LEN_MAX] __attribute__ ((aligned));
#define STATE_TRASH 0x40 #define STATE_TRASH 0x40
#define STATE_FORCEQUIT 0x80 #define STATE_FORCEQUIT 0x80
#define STATE_AUTOFIFO 0x100 #define STATE_AUTOFIFO 0x100
#define STATE_INITFILE 0x200


static uint g_states; static uint g_states;


@@ -5253,11 +5254,20 @@ static bool browse(char *ipath, const char *session, int pkey)


/* setup first context */ /* setup first context */
if (!session || !load_session(session, &path, &lastdir, &lastname, FALSE)) { if (!session || !load_session(session, &path, &lastdir, &lastname, FALSE)) {
xstrsncpy(g_ctx[0].c_path, ipath, PATH_MAX); /* current directory */ g_ctx[0].c_last[0] = '\0';
path = g_ctx[0].c_path;
g_ctx[0].c_last[0] = g_ctx[0].c_name[0] = '\0';
lastdir = g_ctx[0].c_last; /* last visited directory */ lastdir = g_ctx[0].c_last; /* last visited directory */

if (g_states & STATE_INITFILE) {
xstrsncpy(g_ctx[0].c_name, xbasename(ipath), sizeof(g_ctx[0].c_name));
xdirname(ipath);
} else
g_ctx[0].c_name[0] = '\0';

lastname = g_ctx[0].c_name; /* last visited filename */ lastname = g_ctx[0].c_name; /* last visited filename */

xstrsncpy(g_ctx[0].c_path, ipath, PATH_MAX);
path = g_ctx[0].c_path; /* current directory */

g_ctx[0].c_fltr[0] = g_ctx[0].c_fltr[1] = '\0'; g_ctx[0].c_fltr[0] = g_ctx[0].c_fltr[1] = '\0';
g_ctx[0].c_cfg = cfg; /* current configuration */ g_ctx[0].c_cfg = cfg; /* current configuration */
} }
@@ -6725,7 +6735,7 @@ static void usage(void)
"%s: nnn [OPTIONS] [PATH]\n\n" "%s: nnn [OPTIONS] [PATH]\n\n"
"The missing terminal file manager for X.\n\n" "The missing terminal file manager for X.\n\n"
"positional args:\n" "positional args:\n"
" PATH start dir [default: .]\n\n" " PATH start dir/file [default: .]\n\n"
"optional args:\n" "optional args:\n"
#ifndef NOFIFO #ifndef NOFIFO
" -a auto NNN_FIFO\n" " -a auto NNN_FIFO\n"
@@ -7124,10 +7134,8 @@ int main(int argc, char *argv[])
return EXIT_FAILURE; return EXIT_FAILURE;
} }


if (S_ISREG(sb.st_mode)) { if (!S_ISDIR(sb.st_mode))
spawn(opener, arg, NULL, cfg.cliopener ? F_CLI : F_NOTRACE | F_NOWAIT); g_states |= STATE_INITFILE;
return EXIT_SUCCESS;
}


if (session) if (session)
session = NULL; session = NULL;


||||||
x
 
000:0
Loading…
取消
儲存