summaryrefslogtreecommitdiffstats
path: root/crypto/ui/ui_locl.h
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2001-06-23 16:22:48 +0000
committerRichard Levitte <levitte@openssl.org>2001-06-23 16:22:48 +0000
commit2d2ed9dffd6c2f3bb1c591bdc282f0bb3c19132e (patch)
treea6ea9ca5df9f5b4ba80ad00cb81eaca08d915243 /crypto/ui/ui_locl.h
parent8ada6e7705685be0d97987d31f23e6cf543ef544 (diff)
Implement boolean (yes/no or OK/Cancel, ...) input.
Implement UI controls. Current controls are the possibility to output the OpenSSL error stack on the same channel from within UI_process() and to check if the same user interface can be redone without being rebuilt (this is often more a question of philosophy than technicalities).
Diffstat (limited to 'crypto/ui/ui_locl.h')
-rw-r--r--crypto/ui/ui_locl.h35
1 files changed, 27 insertions, 8 deletions
diff --git a/crypto/ui/ui_locl.h b/crypto/ui/ui_locl.h
index 89cdc2fe6a..6499ccac93 100644
--- a/crypto/ui/ui_locl.h
+++ b/crypto/ui/ui_locl.h
@@ -96,21 +96,36 @@ struct ui_method_st
struct ui_string_st
{
- const char *out_string; /* Input */
enum UI_string_types type; /* Input */
+ const char *out_string; /* Input */
int input_flags; /* Flags from the user */
- /* The following parameters are completely irrelevant for UI_INFO,
- and can therefore be set to 0 ro NULL */
+ /* The following parameters are completely irrelevant for UIT_INFO,
+ and can therefore be set to 0 or NULL */
char *result_buf; /* Input and Output: If not NULL, user-defined
with size in result_maxsize. Otherwise, it
may be allocated by the UI routine, meaning
result_minsize is going to be overwritten.*/
- int result_minsize; /* Input: minimum required size of the result*/
- int result_maxsize; /* Input: maximum permitted size of the
- result */
-
- const char *test_buf; /* Input: test string to verify against */
+ union
+ {
+ struct
+ {
+ int result_minsize; /* Input: minimum required
+ size of the result.
+ */
+ int result_maxsize; /* Input: maximum permitted
+ size of the result */
+
+ const char *test_buf; /* Input: test string to verify
+ against */
+ } string_data;
+ struct
+ {
+ const char *action_desc; /* Input */
+ const char *ok_chars; /* Input */
+ const char *cancel_chars; /* Input */
+ } boolean_data;
+ } _;
#define OUT_STRING_FREEABLE 0x01
int flags; /* flags for internal use */
@@ -124,6 +139,10 @@ struct ui_st
with different echoing status. */
void *user_data;
CRYPTO_EX_DATA ex_data;
+
+#define UI_FLAG_REDOABLE 0x0001
+#define UI_FLAG_PRINT_ERRORS 0x0100
+ int flags;
};
#endif