* crypto/ui/ui_lib.c: misplaced brace in switch statement.
[openssl.git] / crypto / ui / ui_lib.c
index dbc9711a2def68fb1db965f842c311e74f183fbc..167da002d24c7197b85e0bef250cf84b98ec973a 100644 (file)
  */
 
 #include <string.h>
+#include "cryptlib.h"
 #include <openssl/e_os2.h>
 #include <openssl/buffer.h>
 #include <openssl/ui.h>
 #include <openssl/err.h>
 #include "ui_locl.h"
-#include "cryptlib.h"
 
 IMPLEMENT_STACK_OF(UI_STRING_ST)
 
@@ -90,6 +90,7 @@ UI *UI_new_method(const UI_METHOD *method)
 
        ret->strings=NULL;
        ret->user_data=NULL;
+       ret->flags=0;
        CRYPTO_new_ex_data(CRYPTO_EX_INDEX_UI, ret, &ret->ex_data);
        return ret;
        }
@@ -545,7 +546,7 @@ int UI_process(UI *ui)
        return ok;
        }
 
-int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f)())
+int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f)(void))
        {
        if (ui == NULL)
                {
@@ -620,8 +621,10 @@ UI_METHOD *UI_create_method(char *name)
        UI_METHOD *ui_method = (UI_METHOD *)OPENSSL_malloc(sizeof(UI_METHOD));
 
        if (ui_method)
+               {
                memset(ui_method, 0, sizeof(*ui_method));
-       ui_method->name = BUF_strdup(name);
+               ui_method->name = BUF_strdup(name);
+               }
        return ui_method;
        }
 
@@ -690,6 +693,17 @@ int UI_method_set_closer(UI_METHOD *method, int (*closer)(UI *ui))
                return -1;
        }
 
+int UI_method_set_prompt_constructor(UI_METHOD *method, char *(*prompt_constructor)(UI* ui, const char* object_desc, const char* object_name))
+       {
+       if (method)
+               {
+               method->ui_construct_prompt = prompt_constructor;
+               return 0;
+               }
+       else
+               return -1;
+       }
+
 int (*UI_method_get_opener(UI_METHOD *method))(UI*)
        {
        if (method)
@@ -730,6 +744,14 @@ int (*UI_method_get_closer(UI_METHOD *method))(UI*)
                return NULL;
        }
 
+char* (*UI_method_get_prompt_constructor(UI_METHOD *method))(UI*, const char*, const char*)
+       {
+       if (method)
+               return method->ui_construct_prompt;
+       else
+               return NULL;
+       }
+
 enum UI_string_types UI_get_string_type(UI_STRING *uis)
        {
        if (!uis)
@@ -894,9 +916,9 @@ int UI_set_result(UI *ui, UI_STRING *uis, const char *result)
                                break;
                                }
                        }
+               }
        default:
                break;
                }
-               }
        return 0;
        }