diff --git a/src/pacman/conf.h b/src/pacman/conf.h index 2aba8bf..afb7878 100644 --- a/src/pacman/conf.h +++ b/src/pacman/conf.h @@ -49,6 +49,7 @@ typedef struct __config_t { unsigned short version; unsigned short help; unsigned short noconfirm; + unsigned short yes; unsigned short noprogressbar; unsigned short logmask; unsigned short print; @@ -151,6 +152,7 @@ enum { OP_LONG_FLAG_MIN = 1000, OP_NOCONFIRM, OP_CONFIRM, + OP_YES, OP_CONFIG, OP_IGNORE, OP_DEBUG, diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index be52d1b..91528b2 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -221,6 +221,8 @@ static void usage(int op, const char * const myname) addlist(_(" --logfile set an alternate log file\n")); addlist(_(" --noconfirm do not ask for any confirmation\n")); addlist(_(" --confirm always ask for confirmation\n")); + addlist(_(" --yes always assume yes, even on answers where the default answer is\n" + " no. Only works together with --noconfirm\n")); } list = alpm_list_msort(list, alpm_list_count(list), options_cmp); for(i = list; i; i = alpm_list_next(i)) { @@ -433,6 +435,9 @@ static int parsearg_global(int opt) case OP_CONFIRM: config->noconfirm = 0; break; + case OP_YES: + config->yes = 1; + break; case OP_DBPATH: case 'b': free(config->dbpath); @@ -914,6 +919,7 @@ static int parseargs(int argc, char *argv[]) {"refresh", no_argument, 0, OP_REFRESH}, {"noconfirm", no_argument, 0, OP_NOCONFIRM}, {"confirm", no_argument, 0, OP_CONFIRM}, + {"yes", no_argument, 0, OP_YES}, {"config", required_argument, 0, OP_CONFIG}, {"ignore", required_argument, 0, OP_IGNORE}, {"assume-installed", required_argument, 0, OP_ASSUMEINSTALLED}, diff --git a/src/pacman/util.c b/src/pacman/util.c index d924bf3..7bf297b 100644 --- a/src/pacman/util.c +++ b/src/pacman/util.c @@ -1546,6 +1546,9 @@ static int question(short preset, const char *format, va_list args) if(config->noconfirm) { fprintf(stream, "\n"); + if(config->yes) { + return 1; + } return preset; }