opkg: Fix a bug that ap may undefined.
[oweals/opkg-lede.git] / libopkg / user.c
index 98ab7b903543982aaef9c52e4a5e9ef06a451fb0..04dfd9e157a5251f3c1e4e462a6dafdf1e5ad649 100644 (file)
@@ -1,4 +1,4 @@
-/* user.c - the itsy package management system
+/* user.c - the opkg package management system
 
    Jamey Hicks
 
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    General Public License for more details.
 */
-
+#include <stdlib.h>
 #include <stdio.h>
 #include <stdarg.h>
+#include <string.h>
 #include "file_util.h"
 #include "str_util.h"
-#ifdef OPKG_LIB        
-#include "libopkg.h"
-#endif 
-
+#include "user.h"
 
-#ifdef OPKG_LIB
 static char *question = NULL;
 static int question_len = 255;
-#endif 
+
+opkg_response_callback opkg_cb_response = NULL;
+
 char *get_user_response(const char *format, ...)
 {
      int len = question_len;
      va_list ap;
      char *response;
-     va_start(ap, format);
 
-#ifndef OPKG_LIB
-     vprintf(format, ap);
-     do {
-         response = file_read_line_alloc(stdin);
-     } while (response == NULL);
-#else
      do {
          if (question == NULL || len > question_len) {
               question = realloc(question, len + 1);
               question_len = len;
          }
+
+          va_start(ap, format);
          len = vsnprintf(question,question_len,format,ap);
+          va_end(ap);
      } while (len > question_len);
      response = strdup(opkg_cb_response(question));
-#endif
      str_chomp(response);
      str_tolower(response);