Hi all

I'm still getting my head around git and pacman-dev's workflow - I know its not that complicated, just need a bit of time.

When using --noconfirm the prompt is presented (odd part) and the user (rightly) is not given an opportunity to confirm:
[ bren...@swift : 12:36:40 : ~/src/pacman ]
:) sudo pacman -Sc --noconfirm
Cache directory: /var/cache/pacman/pkg/
Do you want to remove outdated packages from cache? [Y/n] <------
removing old packages from cache... done.
Database directory: /var/lib/pacman/
Do you want to remove unused repositories? [Y/n]                 <------
Database directory cleaned up
[ bren...@swift : 12:36:57 : ~/src/pacman ]
:)
Best fix I can think of is to just mention that we're using a default because the --noconfirm flag has been used. The alternative (which is less informative for the user) is to not present the prompt at all.

I've inserted 2 strings below. Assuming this is the right change to make, what else would I need to do to ensure that this is compatible with the i18n measures already in place?

util.c, lines 641-680:
/* presents a prompt and gets a Y/N answer */
static int question(short preset, char *fmt, va_list args)
{
        char response[32];
        FILE *stream;

        if(config->noconfirm) {
                stream = stdout;
        } else {
/* Use stderr so questions are always displayed when redirecting output */
                stream = stderr;
        }

        vfprintf(stream, fmt, args);

        if(preset) {
                fprintf(stream, " %s ", _("[Y/n]"));
        } else {
                fprintf(stream, " %s ", _("[y/N]"));
        }

        if(config->noconfirm) {
                fprintf(stream, "\n");
Replace the 'fprintf(stream, "\n");' line above with something like:
               if(preset) {
fprintf(stream, "%s", _("noconfirm option set, defaulting to Yes\n"));
               } else {
fprintf(stream, "%s", _("noconfirm option set, defaulting to No\n"));
               }
                return(preset);
        }

        if(fgets(response, 32, stdin)) {
                strtrim(response);
                if(strlen(response) == 0) {
                        return(preset);
                }

if(!strcasecmp(response, _("Y")) || !strcasecmp(response, _("YES"))) {
                        return(1);
} else if (!strcasecmp(response, _("N")) || !strcasecmp(response, _("NO"))) {
                        return(0);
                }
        }
        return(0);
}
--

__________
Brendan Hide

_______________________________________________
pacman-dev mailing list
pacman-dev@archlinux.org
http://www.archlinux.org/mailman/listinfo/pacman-dev

Reply via email to