00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00099 #ifndef DK_APP_INCLUDED
00100 #define DK_APP_INCLUDED 1
00101
00102 #include <dk.h>
00103 #include <dktypes.h>
00104
00105 #if defined(EXTERN)
00106 #undef EXTERN
00107 #endif
00108
00109 #ifndef DK_APP_C
00110 #if !DK_HAVE_PROTOTYPES
00111 #define EXTERN extern
00112 #else
00113 #define EXTERN
00114 #endif
00115 #else
00116 #define EXTERN
00117 #endif
00118
00119 #if defined(__cplusplus)
00120 extern "C" {
00121 #endif
00122
00123
00124
00138 EXTERN
00139 dk_app_t *dkapp_open_ext1 DK_PR((\
00140 int c, char *v[], char *g, char *e, int s, int n));
00141
00142
00143
00151 EXTERN int
00152 dkapp_silence_check DK_PR((int argc, char **argv));
00153
00154
00155
00161 EXTERN
00162 dk_app_t *dkapp_open DK_PR((int c, char *v[]));
00163
00164
00165
00175 EXTERN int
00176 dkapp_set_groupname DK_PR((dk_app_t *a, char *n));
00177
00178
00179
00189 EXTERN void
00190 dkapp_set_silent DK_PR((dk_app_t *a, int f));
00191
00192
00193
00203 EXTERN void
00204 dkapp_set_nostdio DK_PR((dk_app_t *a, int f));
00205
00206
00207
00211 EXTERN
00212 void dkapp_close DK_PR((dk_app_t *a));
00213
00214
00215
00222 EXTERN char *
00223 dkapp_get_appname DK_PR((dk_app_t *a));
00224
00225
00226
00231 EXTERN int
00232 dkapp_get_argc DK_PR((dk_app_t *a));
00233
00234
00235
00240 EXTERN char **
00241 dkapp_get_argv DK_PR((dk_app_t *a));
00242
00243
00244
00254 EXTERN
00255 int
00256 dkapp_get_pref DK_PR((dk_app_t *a, char *k, char *b, size_t l, int x));
00257
00258
00259
00274 EXTERN
00275 int
00276 dkapp_get_pref_env DK_PR((\
00277 dk_app_t *a, char *k, char *b, size_t l, int x, char *e));
00278
00279
00280
00292 EXTERN
00293 int dkapp_set_pref DK_PR((dk_app_t *a, char *k, char *v));
00294
00295
00296
00305 EXTERN int
00306 dkapp_get_bool_pref DK_PR((dk_app_t *a, char *k));
00307
00308
00309
00316 EXTERN unsigned long
00317 dkapp_get_ul_pref DK_PR((dk_app_t *a, char *k));
00318
00319
00320
00330 EXTERN char *
00331 dkapp_get_str_pref DK_PR((dk_app_t *a, char *k));
00332
00333
00334
00341 EXTERN void
00342 dkapp_unconfigure DK_PR((dk_app_t *a));
00343
00344
00345
00356 EXTERN
00357 int
00358 dkapp_transform_string DK_PR((dk_app_t *a,char *d,size_t l,char *s));
00359
00360
00361
00374 EXTERN
00375 int
00376 dkapp_transform_string_ext1 DK_PR((dk_app_t *a,char *d,size_t l,char *s,int f));
00377
00378
00379
00388 EXTERN int
00389 dkapp_tmpnam DK_PR((dk_app_t *a, char *b, size_t s));
00390
00391
00392
00401 EXTERN
00402 int dkapp_log_msg DK_PR((dk_app_t *a, int p, char **m, int n));
00403
00404
00405
00419 EXTERN void
00420 dkapp_set_source_filename DK_PR((dk_app_t *a, char *n));
00421
00422
00423
00430 EXTERN void
00431 dkapp_set_source_lineno DK_PR((dk_app_t *a, unsigned long l));
00432
00433
00434
00440 EXTERN char *
00441 dkapp_get_source_filename DK_PR((dk_app_t *a));
00442
00443
00444
00449 EXTERN unsigned long
00450 dkapp_get_source_lineno DK_PR((dk_app_t *a));
00451
00452
00453
00459 EXTERN
00460 int dkapp_llmax_get DK_PR((dk_app_t *a));
00461
00462
00463
00471 EXTERN int
00472 dkapp_get_min_loglevel DK_PR((dk_app_t *a));
00473
00474
00475
00481 EXTERN int
00482 dkapp_ide_type DK_PR((char *s));
00483
00484
00485
00497 EXTERN void
00498 dkapp_set_keep_temp DK_PR((dk_app_t *a, int p));
00499
00500
00501
00510 EXTERN
00511 void dkapp_llmax_set DK_PR((dk_app_t *a, int p));
00512
00513
00514
00522 EXTERN int
00523 dkapp_log_level_in_use DK_PR((dk_app_t *a, int p));
00524
00525
00526
00540 EXTERN
00541 int
00542 dkapp_find_file DK_PR((dk_app_t *a, char *n, char *b, size_t s));
00543
00544
00545
00558 EXTERN
00559 int
00560 dkapp_find_cfg DK_PR((dk_app_t *a, char *n, char *b, size_t s));
00561
00562
00563
00577 EXTERN char *
00578 dkapp_find_file_dup DK_PR((dk_app_t *a, char *n));
00579
00580
00581
00595 EXTERN char *
00596 dkapp_find_cfg_dup DK_PR((dk_app_t *a, char *n));
00597
00598
00606 EXTERN dk_stream_t *
00607 dkapp_read_file_ext1 DK_PR((dk_app_t *a, char *n, int *t));
00608
00609
00616 EXTERN dk_stream_t *
00617 dkapp_read_file DK_PR((dk_app_t *a, char *n));
00618
00619
00631 EXTERN dk_stream_t *
00632 dkapp_read_cfg DK_PR((dk_app_t *a, char *n));
00633
00634
00635
00645 EXTERN dk_stream_t *
00646 dkapp_write_file DK_PR((dk_app_t *a, char *n));
00647
00648
00649
00663 EXTERN
00664 char *
00665 dkapp_find_string DK_PR((dk_app_t *a, char *t, char *k, char *d));
00666
00667
00668
00677 EXTERN void
00678 dkapp_find_multi DK_PR((dk_app_t *a, dk_string_finder_t *f, char *t));
00679
00680
00681
00694 EXTERN void
00695 dkapp_init_key_value DK_PR((\
00696 dk_app_t *a,dk_key_value_t *k,size_t s,char *n, char **b));
00697
00698
00699
00711 EXTERN char **
00712 dkapp_find_key_value DK_PR((dk_app_t *a,dk_key_value_t *k,size_t s,char *n));
00713
00714
00715
00726 EXTERN void
00727 dkapp_help DK_PR((dk_app_t *a, char *n, char **d));
00728
00729
00730
00740 EXTERN dk_stream_t *
00741 dkapp_stream_openfile DK_PR((dk_app_t *a, char *n, char *m));
00742
00743
00744
00754 EXTERN dk_stream_t *
00755 dkapp_stream_opengz DK_PR((dk_app_t *a, char *n, char *m));
00756
00757
00758
00768 EXTERN dk_stream_t *
00769 dkapp_stream_openbz2 DK_PR((dk_app_t *a, char *n, char *m));
00770
00771
00772
00780 EXTERN FILE *
00781 dkapp_fopen DK_PR((dk_app_t *a, char *n, char *m));
00782
00783
00784
00794 EXTERN int
00795 dkapp_get_relaxed_fopen_check DK_PR((dk_app_t *a));
00796
00797
00798
00803 EXTERN unsigned char *
00804 dkapp_get_stdout_codepage DK_PR((dk_app_t *a));
00805
00806
00807
00819 EXTERN char *
00820 dkapp_fne_one DK_PR((dk_app_t *a, dk_fne_t *f, char *p));
00821
00822
00823
00829 EXTERN void
00830 dkapp_stdout DK_PR((dk_app_t *a, char *s));
00831
00832
00833
00839 EXTERN void
00840 dkapp_stderr DK_PR((dk_app_t *a, char *s));
00841
00842
00843
00849 EXTERN void
00850 dkapp_fputs DK_PR((dk_app_t *a, char *s, FILE *f));
00851
00852
00853
00860 EXTERN size_t
00861 dkapp_prlen DK_PR((dk_app_t *a, char *s));
00862
00863
00867 EXTERN void
00868 dkapp_info_no_openssl_support DK_PR((dk_app_t *a));
00869
00870
00871
00876 EXTERN void
00877 dkapp_err_traverse_dir DK_PR((dk_app_t *a, char *n));
00878
00879
00880
00885 EXTERN void
00886 dkapp_err_stat_failed DK_PR((dk_app_t *a, char *n));
00887
00888
00889
00893 EXTERN void
00894 dkapp_err_cwd DK_PR((dk_app_t *a));
00895
00896
00897
00903 EXTERN void
00904 dkapp_err_memory DK_PR((dk_app_t *a, size_t e, size_t n));
00905
00906
00907
00912 EXTERN void
00913 dkapp_err_matchfile DK_PR((dk_app_t *a, char *n));
00914
00915
00916
00921 EXTERN void
00922 dkapp_err_matchdir DK_PR((dk_app_t *a, char *n));
00923
00924
00925
00930 EXTERN void
00931 dkapp_err_fopenr DK_PR((dk_app_t *a, char *n));
00932
00933
00934
00939 EXTERN void
00940 dkapp_err_fopenw DK_PR((dk_app_t *a, char *n));
00941
00942
00943
00948 EXTERN void
00949 dkapp_err_fwrite DK_PR((dk_app_t *a, char *n));
00950
00951
00952
00957 EXTERN void
00958 dkapp_err_fread DK_PR((dk_app_t *a, char *n));
00959
00960
00961
00968 EXTERN void
00969 dkapp_err_nowrite DK_PR((dk_app_t *a, char *n, int r));
00970
00971
00972
00976 EXTERN void
00977 dkapp_err_tcpip DK_PR((dk_app_t *a));
00978
00979
00980
00985 EXTERN void
00986 dkapp_err_no_such_file DK_PR((dk_app_t *a, char *n));
00987
00988
00989
00994 EXTERN void
00995 dkapp_err_multiple_files DK_PR((dk_app_t *a, char *p));
00996
00997
00998
01003 EXTERN void
01004 dkapp_err_not_a_regular_file DK_PR((dk_app_t *a, char *n));
01005
01006
01007
01012 EXTERN void
01013 dkapp_info_file_does_not_exist DK_PR((dk_app_t *a, char *n));
01014
01015
01016
01021 EXTERN void
01022 dkapp_err_invalid_permissions DK_PR((dk_app_t *a, char *n));
01023
01024
01025
01030 EXTERN void
01031 dkapp_err_invalid_owner DK_PR((dk_app_t *a, char *n));
01032
01033
01034
01039 EXTERN void
01040 dkapp_err_not_a_device DK_PR((dk_app_t *a, char *n));
01041
01042
01043
01048 EXTERN void
01049 dkapp_err_no_zlib_support_for DK_PR((dk_app_t *a, char *n));
01050
01051
01052
01057 EXTERN void
01058 dkapp_err_no_bzlib_support_for DK_PR((dk_app_t *a, char *n));
01059
01060 #if defined(__cplusplus)
01061 }
01062 #endif
01063
01064
01065 #if defined(EXTERN)
01066 #undef EXTERN
01067 #endif
01068 #ifndef DKAPPR_C
01069 #if !DK_HAVE_PROTOTYPES
01070 #define EXTERN extern
01071 #else
01072 #define EXTERN
01073 #endif
01074 #else
01075 #define EXTERN
01076 #endif
01077
01078 #if defined(__cplusplus)
01079 extern "C" {
01080 #endif
01081
01082
01083
01091 EXTERN int
01092 dkapp_rand_types_from_string DK_PR((dk_app_t *a, char *s));
01093
01094
01095
01103 EXTERN int
01104 dkapp_rand_begin DK_PR((dk_app_t *a, int r));
01105
01106
01107
01114 EXTERN size_t
01115 dkapp_rand_bytes DK_PR((dk_app_t *a, void *b, size_t s));
01116
01117
01118
01125 EXTERN size_t
01126 dkapp_rand_bytes_non_crypto DK_PR((dk_app_t *a, void *b, size_t s));
01127
01128
01129
01134 EXTERN int
01135 dkapp_rand_end DK_PR((dk_app_t *a));
01136
01137 #if DKAPPR_C
01138
01144 EXTERN void
01145 dkapp_stderr_msg_need_random_input DK_PR((dk_app_t *a));
01146
01150 EXTERN void
01151 dkapp_stderr_msg_need_more_random_input DK_PR((dk_app_t *a));
01152
01156 EXTERN void
01157 dkapp_stderr_msg_echo_not_off DK_PR((dk_app_t *a));
01158
01163 EXTERN void
01164 dkapp_err_not_a_regular_file DK_PR((dk_app_t *a, char *fn));
01165
01170 EXTERN void
01171 dkapp_err_invalid_permissions DK_PR((dk_app_t *a, char *fn));
01172
01177 EXTERN void
01178 dkapp_err_invalid_owner DK_PR((dk_app_t *a, char *fn));
01179
01184 EXTERN void
01185 dkapp_err_not_a_device DK_PR((dk_app_t *a, char *fn));
01186
01190 EXTERN void
01191 dkapp_debug_attempt_seed_openssl DK_PR((dk_app_t *a));
01192
01196 EXTERN void
01197 dkapp_debug_attempt_seed_random DK_PR((dk_app_t *a));
01198
01202 EXTERN void
01203 dkapp_debug_attempt_seed_rand48 DK_PR((dk_app_t *a));
01204
01208 EXTERN void
01209 dkapp_debug_attempt_seed_rand DK_PR((dk_app_t *a));
01210
01214 EXTERN void
01215 dkapp_debug_failed_seed_openssl DK_PR((dk_app_t *a));
01216
01220 EXTERN void
01221 dkapp_debug_failed_seed_random DK_PR((dk_app_t *a));
01222
01226 EXTERN void
01227 dkapp_debug_failed_seed_rand48 DK_PR((dk_app_t *a));
01228
01232 EXTERN void
01233 dkapp_debug_failed_seed_rand DK_PR((dk_app_t *a));
01234
01238 EXTERN void
01239 dkapp_debug_unavailable_openssl DK_PR((dk_app_t *a));
01240
01244 EXTERN void
01245 dkapp_debug_unavailable_random DK_PR((dk_app_t *a));
01246
01250 EXTERN void
01251 dkapp_debug_unavailable_rand48 DK_PR((dk_app_t *a));
01252
01256 EXTERN void
01257 dkapp_debug_unavailable_rand DK_PR((dk_app_t *a));
01258
01263 EXTERN void
01264 dkapp_debug_attempt_seed_file DK_PR((dk_app_t *a, char *fn));
01265
01271 EXTERN void
01272 dkapp_debug_attempt_seed_egd DK_PR((dk_app_t *a, char *fn));
01273
01278 EXTERN void
01279 dkapp_debug_attempt_seed_device DK_PR((dk_app_t *a, char *fn));
01280
01284 EXTERN void
01285 dkapp_debug_attempt_seed_screen DK_PR((dk_app_t *a));
01286
01290 EXTERN void
01291 dkapp_debug_attempt_seed_kbd DK_PR((dk_app_t *a));
01292
01296 EXTERN void
01297 dkapp_debug_prng_seeded_successfully DK_PR((dk_app_t *a));
01298
01302 EXTERN void
01303 dkapp_warn_prng_not_crypto DK_PR((dk_app_t *a));
01304
01308 EXTERN void
01309 dkapp_err_no_prng_found DK_PR((dk_app_t *a));
01310
01315 EXTERN void
01316 dkapp_warn_unknown_prng DK_PR((dk_app_t *a, char *prng));
01317
01318
01319
01320 #endif
01321
01322
01323 #if defined(__cplusplus)
01324 };
01325 #endif
01326
01327
01329 #define DK_APP_PREF_EXCL_CMD 1
01330
01332 #define DK_APP_PREF_EXCL_PROG 2
01333
01335 #define DK_APP_PREF_EXCL_USER 4
01336
01338 #define DK_APP_PREF_EXCL_SYSTEM 8
01339
01341 #define DK_APP_IDE_NONE 0
01342
01344 #define DK_APP_IDE_GCC 1
01345
01347 #define DK_APP_IDE_MSVC 2
01348
01350 #define DK_APP_IDE_WORKSHOP 3
01351
01353 #define DK_APP_IDE_TASM 4
01354
01356 #define DK_APP_PNC_LANGUAGE 2
01357
01359 #define DK_APP_PNC_REGION 1
01360
01362 #define DK_APP_PNC_ENCODING 4
01363
01365 #define DK_APP_LOG_NO_STDOUT 1
01366
01368 #define DK_APP_LOG_NO_STDERR 2
01369
01371 #define DK_APP_LOG_NO_STDIO (DK_APP_LOG_NO_STDOUT | DK_APP_LOG_NO_STDERR)
01372
01373 #endif
01374
01375
01376