Remove prompt argument from yesno(), caller can fprintf(stderr, "blah") itself.

This fixes the build break, the change to yesno() prototype accidentally got
checked in last commit. (Oops, sorry.)
diff --git a/lib/lib.c b/lib/lib.c
index 058c638..c5fca3f 100644
--- a/lib/lib.c
+++ b/lib/lib.c
@@ -630,11 +630,11 @@
   *(p++) = '/';
 }
 
-int yesno(char *prompt, int def)
+int yesno(int def)
 {
   char buf;
 
-  fprintf(stderr, "%s (%c/%c):", prompt, def ? 'Y' : 'y', def ? 'n' : 'N');
+  fprintf(stderr, " (%c/%c):", def ? 'Y' : 'y', def ? 'n' : 'N');
   fflush(stderr);
   while (fread(&buf, 1, 1, stdin)) {
     int new;
diff --git a/toys/lsb/killall.c b/toys/lsb/killall.c
index 478f761..e892755 100644
--- a/toys/lsb/killall.c
+++ b/toys/lsb/killall.c
@@ -40,8 +40,8 @@
   if (pid == TT.cur_pid) return 0;
 
   if (toys.optflags & FLAG_i) {
-    snprintf(toybuf, sizeof(toybuf), "Signal %s(%d) ?", name, (int)pid);
-    if (!yesno(toybuf, 0)) return 0;
+    fprintf(stderr, "Signal %s(%d)", name, (int)pid);
+    if (!yesno(0)) return 0;
   }
 
   errno = 0;
diff --git a/toys/pending/crontab.c b/toys/pending/crontab.c
index 35f6d65..05c98f2 100644
--- a/toys/pending/crontab.c
+++ b/toys/pending/crontab.c
@@ -317,9 +317,9 @@
   }
   printf("%s: installing new crontab\n", toys.which->name);
   if (parse_crontab(tname)) {
-    snprintf(toybuf, sizeof(toybuf), "errors in crontab file, can't install.\n"
+    fprintf(stderr, "errors in crontab file, can't install.\n"
         "Do you want to retry the same edit? ");
-    if (!yesno(toybuf, 0)) {
+    if (!yesno(0)) {
       error_msg("edits left in '%s'", tname);
       return;
     }
diff --git a/toys/posix/cp.c b/toys/posix/cp.c
index 5a55f40..2b032fe 100644
--- a/toys/posix/cp.c
+++ b/toys/posix/cp.c
@@ -173,7 +173,7 @@
         fprintf(stderr, "%s: overwrite '%s'", toys.which->name,
           s = dirtree_path(try, 0));
         free(s);
-        if (!yesno("", 1)) return 0;
+        if (!yesno(1)) return 0;
       }
     }
 
@@ -348,11 +348,11 @@
       // Try to interpret as letters, commas won't set anything this doesn't.
       for (s = TT.c.preserve; *s; s++) {
         for (i=0; i<ARRAY_LEN(preserve); i++)
-          if (*s == *preserve[i]) TT.pflags |= 1<<i;
+          if (*s == *preserve[i]) break;
         if (i == ARRAY_LEN(preserve)) {
           if (*s == 'a') TT.pflags = ~0;
           else break;
-        }
+        } else TT.pflags |= 1<<i;
       }
 
       if (*s) error_exit("bad --preserve=%s", pre);
@@ -381,7 +381,7 @@
           && ((toys.optflags & FLAG_i) || !(st.st_mode & 0222)))
         {
           fprintf(stderr, "%s: overwrite '%s'", toys.which->name, TT.destname);
-          if (!yesno("", 1)) rc = 0;
+          if (!yesno(1)) rc = 0;
           else unlink(TT.destname);
         }
       }
diff --git a/toys/posix/find.c b/toys/posix/find.c
index 99cf5e2..1058529 100644
--- a/toys/posix/find.c
+++ b/toys/posix/find.c
@@ -421,10 +421,8 @@
           if (aa->dir) aa->prev = (void *)1;
 
           if (*s == 'o') {
-            char *prompt = xmprintf("[%s] %s", ss1, name);
-            test = yesno(prompt, 0);
-            free(prompt);
-            if (!test) {
+            fprintf(stderr, "[%s] %s", ss1, name);
+            if (!(test = yesno(0))) {
               free(name);
               goto cont;
             }
diff --git a/toys/posix/rm.c b/toys/posix/rm.c
index 5523a98..f591c64 100644
--- a/toys/posix/rm.c
+++ b/toys/posix/rm.c
@@ -39,9 +39,10 @@
     && (!S_ISLNK(try->st.st_mode) && faccessat(fd, try->name, W_OK, 0))) or++;
   if (!(dir && try->again) && ((or && isatty(0)) || (flags & FLAG_i))) {
     char *s = dirtree_path(try, 0);
-    fprintf(stderr, "rm %s%s", or ? "ro " : "", dir ? "dir " : "");
-    or = yesno(s, 0);
+
+    fprintf(stderr, "rm %s%s%s", or ? "ro " : "", dir ? "dir " : "", s);
     free(s);
+    or = yesno(0);
     if (!or) goto nodelete;
   }
 
@@ -57,10 +58,11 @@
     if (try->symlink) goto skip;
     if (flags & FLAG_i) {
       char *s = dirtree_path(try, 0);
+
       // This is the section 2(d) prompt. (Yes, posix says to prompt twice.)
-      fprintf(stderr, "rmdir ");
-      or = yesno(s, 0);
+      fprintf(stderr, "rmdir %s", s);
       free(s);
+      or = yesno(0);
       if (!or) goto nodelete;
     }
   }