diff --git a/src/browser.c b/src/browser.c index 4fcc3d47893e0c8bdb2fadeaf34e7e1b749da13b..e9345916f3354c6d35bbc0c3b46a9601f918824e 100644 --- a/src/browser.c +++ b/src/browser.c @@ -370,7 +370,7 @@ int browse_key(int ch) { info_show = 0; break; case 'd': - if(sel == NULL || sel == dirlist_parent) + if(read_only || sel == NULL || sel == dirlist_parent) break; info_show = 0; if((t = dirlist_get(1)) == sel) diff --git a/src/global.h b/src/global.h index ceb1a2b59ba8eced5568a2ac6794dbdf9b06a42c..71151b5ccc5c4d0320275e83e78846a463d76a27 100644 --- a/src/global.h +++ b/src/global.h @@ -71,6 +71,8 @@ struct dir { /* program state */ extern int pstate; +/* read-only flag */ +extern int read_only; /* minimum screen update interval when calculating, in ms */ extern long update_delay; diff --git a/src/main.c b/src/main.c index 35aaae929e6bba6e0f105ce66a03b69b457e8e59..ed1ce6695804cfc1fb311460e772c9756890d708 100644 --- a/src/main.c +++ b/src/main.c @@ -37,6 +37,7 @@ int pstate; int min_rows = 17, min_cols = 60; +int read_only = 0; long update_delay = 100, lastupdate = 999; @@ -118,6 +119,7 @@ char *argv_parse(int argc, char **argv) { for(j=1; j<len; j++) switch(argv[i][j]) { case 'x': calc_smfs = 1; break; + case 'r': read_only = 1; break; case 'q': update_delay = 2000; break; case '?': case 'h': @@ -126,6 +128,7 @@ char *argv_parse(int argc, char **argv) { printf(" -q Quiet mode, refresh interval 2 seconds\n"); printf(" -v Print version\n"); printf(" -x Same filesystem\n"); + printf(" -r Read only\n"); printf(" --exclude PATTERN Exclude files that match PATTERN\n"); printf(" -X, --exclude-from FILE Exclude files that match any pattern in FILE\n"); exit(0);