00001 #include <stdlib.h> 00002 #include <string.h> 00003 #include <time.h> 00004 00005 #include <mcs_c.h> 00006 00007 static char* String_F2C(char* ss, int len) 00008 { 00009 unsigned int i; 00010 char* p = malloc(len + 1); 00011 p[len] = 0; 00012 memcpy(p, ss, len); 00013 if (len > 0) { 00014 for (i=len-1; i>=0; i--) { 00015 if (p[i] != ' ') break; 00016 else p[i] = 0; 00017 } 00018 } 00019 return p; 00020 } 00021 00022 00023 static int String_C2F(char* src, char*dst, int len) 00024 { 00025 int i; 00026 00027 for (i=0; i<len; i++ ) 00028 if (! src[i]) break; 00029 else dst[i] = src[i]; 00030 00031 for (; i<len; i++) 00032 dst[i] = ' '; 00033 00034 return 1; 00035 } 00036 00037 00038 //char* ifd_last_error(); 00039 void wf77_ifd_last_error_(char* RET, int* RET_len) { 00040 char* RETSTR = ifd_last_error(); 00041 String_C2F(RETSTR, RET, *RET_len); 00042 } 00043 00044 00045 //int ifd_got_error(); 00046 void wf77_ifd_got_error_(int* RET) { 00047 *RET = ifd_got_error(); 00048 } 00049 00050 00051 //void ifd_reset_error(); 00052 void wf77_ifd_reset_error_() { 00053 ifd_reset_error(); 00054 } 00055 00056 00057 //void* ifd_null(); 00058 void wf77_ifd_null_(int** RET) { 00059 *RET = ifd_null(); 00060 } 00061 00062 00063 //void* new_Data(void* dummy, Types type, unsigned short int maxLength, short isunsigned); 00064 void wf77_new_data_(int** dummy, int* type, int* maxLength, int* isunsigned, int** RET) { 00065 *RET = new_Data(* ((void**) dummy), * ((Types*) type), * ((unsigned short int*) maxLength), * ((short*) isunsigned)); 00066 } 00067 00068 00069 //void* copy_Data(void* obj); 00070 void wf77_copy_data_(int** obj, int** RET) { 00071 *RET = copy_Data(* ((void**) obj)); 00072 } 00073 00074 00075 //void del_Data(void* obj); 00076 void wf77_del_data_(int** obj) { 00077 del_Data(* ((void**) obj)); 00078 } 00079 00080 00081 //char* Data_name(void* obj); 00082 void wf77_data_name_(int** obj, char* RET, int* RET_len) { 00083 char* RETSTR = Data_name(* ((void**) obj)); 00084 if (! ifd_got_error()) 00085 String_C2F(RETSTR, RET, *RET_len); 00086 else 00087 String_C2F("", RET, *RET_len); 00088 } 00089 00090 00091 //Types Data_type(void* obj); 00092 void wf77_data_type_(int** obj, int* RET) { 00093 *RET = Data_type(* ((void**) obj)); 00094 } 00095 00096 00097 //unsigned short int Data_maxLength(void* obj); 00098 void wf77_data_maxlength_(int** obj, int* RET) { 00099 *RET = Data_maxLength(* ((void**) obj)); 00100 } 00101 00102 00103 //unsigned short int Data_length(void* obj); 00104 void wf77_data_length_(int** obj, int* RET) { 00105 *RET = Data_length(* ((void**) obj)); 00106 } 00107 00108 00109 //short Data_isUnsigned(void* obj); 00110 void wf77_data_isunsigned_(int** obj, int* RET) { 00111 *RET = Data_isUnsigned(* ((void**) obj)); 00112 } 00113 00114 00115 //short Data_isNull(void* obj); 00116 void wf77_data_isnull_(int** obj, int* RET) { 00117 *RET = Data_isNull(* ((void**) obj)); 00118 } 00119 00120 00121 //int Data_ival(void* obj); 00122 void wf77_data_ival_(int** obj, int* RET) { 00123 *RET = Data_ival(* ((void**) obj)); 00124 } 00125 00126 00127 //unsigned int Data_uival(void* obj); 00128 void wf77_data_uival_(int** obj, long long int* RET) { 00129 *RET = Data_uival(* ((void**) obj)); 00130 } 00131 00132 00133 //long long int Data_lval(void* obj); 00134 void wf77_data_lval_(int** obj, long long int* RET) { 00135 *RET = Data_lval(* ((void**) obj)); 00136 } 00137 00138 00139 //unsigned long long int Data_ulval(void* obj); 00140 void wf77_data_ulval_(int** obj, unsigned long long int* RET) { 00141 *RET = Data_ulval(* ((void**) obj)); 00142 } 00143 00144 00145 //float Data_fval(void* obj); 00146 void wf77_data_fval_(int** obj, float* RET) { 00147 *RET = Data_fval(* ((void**) obj)); 00148 } 00149 00150 00151 //double Data_dval(void* obj); 00152 void wf77_data_dval_(int** obj, double* RET) { 00153 *RET = Data_dval(* ((void**) obj)); 00154 } 00155 00156 00157 //char* Data_sval(void* obj); 00158 void wf77_data_sval_(int** obj, char* RET, int* RET_len) { 00159 char* RETSTR = Data_sval(* ((void**) obj)); 00160 if (! ifd_got_error()) 00161 String_C2F(RETSTR, RET, *RET_len); 00162 else 00163 String_C2F("", RET, *RET_len); 00164 } 00165 00166 00167 //unsigned int Data_tval(void* obj); 00168 void wf77_data_tval_(int** obj, long long int* RET) { 00169 *RET = Data_tval(* ((void**) obj)); 00170 } 00171 00172 00173 //void Data_setNull(void* obj); 00174 void wf77_data_setnull_(int** obj) { 00175 Data_setNull(* ((void**) obj)); 00176 } 00177 00178 00179 //void Data_setival(void* obj, int val); 00180 void wf77_data_setival_(int** obj, int* val) { 00181 Data_setival(* ((void**) obj), * ((int*) val)); 00182 } 00183 00184 00185 //void Data_setuival(void* obj, unsigned int val); 00186 void wf77_data_setuival_(int** obj, long long int* val) { 00187 Data_setuival(* ((void**) obj), * ((unsigned int*) val)); 00188 } 00189 00190 00191 //void Data_setlval(void* obj, long long int val); 00192 void wf77_data_setlval_(int** obj, long long int* val) { 00193 Data_setlval(* ((void**) obj), * ((long long int*) val)); 00194 } 00195 00196 00197 //void Data_setulval(void* obj, unsigned long long int val); 00198 void wf77_data_setulval_(int** obj, unsigned long long int* val) { 00199 Data_setulval(* ((void**) obj), * ((unsigned long long int*) val)); 00200 } 00201 00202 00203 //void Data_setdval(void* obj, double val); 00204 void wf77_data_setdval_(int** obj, double* val) { 00205 Data_setdval(* ((void**) obj), * ((double*) val)); 00206 } 00207 00208 00209 //void Data_setsval(void* obj, char* val); 00210 void wf77_data_setsval_(int** obj, char* val, int* val_flen) { 00211 char* C_val = String_F2C(val, *val_flen); 00212 Data_setsval(* ((void**) obj), C_val); 00213 free(C_val); 00214 } 00215 00216 00217 //void Data_setblob(void* obj, void* lbuf, unsigned int size); 00218 void wf77_data_setblob_(int** obj, int** lbuf, long long int* size) { 00219 Data_setblob(* ((void**) obj), * ((void**) lbuf), * ((unsigned int*) size)); 00220 } 00221 00222 00223 //void Data_settimeval(void* obj, unsigned int val); 00224 void wf77_data_settimeval_(int** obj, long long int* val) { 00225 Data_settimeval(* ((void**) obj), * ((unsigned int*) val)); 00226 } 00227 00228 00229 //char* Data_print(void* obj); 00230 void wf77_data_print_(int** obj, char* RET, int* RET_len) { 00231 char* RETSTR = Data_print(* ((void**) obj)); 00232 if (! ifd_got_error()) 00233 String_C2F(RETSTR, RET, *RET_len); 00234 else 00235 String_C2F("", RET, *RET_len); 00236 } 00237 00238 00239 //void Data_setTag(void* obj, short tag); 00240 void wf77_data_settag_(int** obj, int* tag) { 00241 Data_setTag(* ((void**) obj), * ((short*) tag)); 00242 } 00243 00244 00245 //short Data_getTag(void* obj); 00246 void wf77_data_gettag_(int** obj, int* RET) { 00247 *RET = Data_getTag(* ((void**) obj)); 00248 } 00249 00250 00251 //void* new_Record(void* dummy); 00252 void wf77_new_record_(int** dummy, int** RET) { 00253 *RET = new_Record(* ((void**) dummy)); 00254 } 00255 00256 00257 //void del_Record(void* obj); 00258 void wf77_del_record_(int** obj) { 00259 del_Record(* ((void**) obj)); 00260 } 00261 00262 00263 //void Record_clear(void* obj); 00264 void wf77_record_clear_(int** obj) { 00265 Record_clear(* ((void**) obj)); 00266 } 00267 00268 00269 //unsigned int Record_count(void* obj); 00270 void wf77_record_count_(int** obj, long long int* RET) { 00271 *RET = Record_count(* ((void**) obj)); 00272 } 00273 00274 00275 //void Record_addField(void* obj, void* d); 00276 void wf77_record_addfield_(int** obj, int** d) { 00277 Record_addField(* ((void**) obj), * ((void**) d)); 00278 } 00279 00280 00281 //void* Record_pop(void* obj, int x); 00282 void wf77_record_pop_(int** obj, int* x, int** RET) { 00283 *RET = Record_pop(* ((void**) obj), * ((int*) x)); 00284 } 00285 00286 00287 //void* Record_field(void* obj, int x); 00288 void wf77_record_field_(int** obj, int* x, int** RET) { 00289 *RET = Record_field(* ((void**) obj), * ((int*) x)); 00290 } 00291 00292 00293 //int Record_posWhoseNameIs(void* obj, char* name); 00294 void wf77_record_poswhosenameis_(int** obj, char* name, int* name_flen, int* RET) { 00295 char* C_name = String_F2C(name, *name_flen); 00296 *RET = Record_posWhoseNameIs(* ((void**) obj), C_name); 00297 free(C_name); 00298 } 00299 00300 00301 //void Record_setFieldMap(void* obj, char* s); 00302 void wf77_record_setfieldmap_(int** obj, char* s, int* s_flen) { 00303 char* C_s = String_F2C(s, *s_flen); 00304 Record_setFieldMap(* ((void**) obj), C_s); 00305 free(C_s); 00306 } 00307 00308 00309 //short RecordSet_setFirst(void* obj); 00310 void wf77_recordset_setfirst_(int** obj, int* RET) { 00311 *RET = RecordSet_setFirst(* ((void**) obj)); 00312 } 00313 00314 00315 //short RecordSet_setLast(void* obj); 00316 void wf77_recordset_setlast_(int** obj, int* RET) { 00317 *RET = RecordSet_setLast(* ((void**) obj)); 00318 } 00319 00320 00321 //short RecordSet_setNext(void* obj); 00322 void wf77_recordset_setnext_(int** obj, int* RET) { 00323 *RET = RecordSet_setNext(* ((void**) obj)); 00324 } 00325 00326 00327 //short RecordSet_setPrev(void* obj); 00328 void wf77_recordset_setprev_(int** obj, int* RET) { 00329 *RET = RecordSet_setPrev(* ((void**) obj)); 00330 } 00331 00332 00333 //short RecordSet_setWhereS(void* obj, unsigned int field, char* where); 00334 void wf77_recordset_setwheres_(int** obj, long long int* field, char* where, int* where_flen, int* RET) { 00335 char* C_where = String_F2C(where, *where_flen); 00336 *RET = RecordSet_setWhereS(* ((void**) obj), * ((unsigned int*) field), C_where); 00337 free(C_where); 00338 } 00339 00340 00341 //short RecordSet_setWhereI(void* obj, unsigned int field, int where); 00342 void wf77_recordset_setwherei_(int** obj, long long int* field, int* where, int* RET) { 00343 *RET = RecordSet_setWhereI(* ((void**) obj), * ((unsigned int*) field), * ((int*) where)); 00344 } 00345 00346 00347 //short RecordSet_setPos(void* obj, unsigned int newpos); 00348 void wf77_recordset_setpos_(int** obj, long long int* newpos, int* RET) { 00349 *RET = RecordSet_setPos(* ((void**) obj), * ((unsigned int*) newpos)); 00350 } 00351 00352 00353 //void RecordSet_dump(void* obj, char* fn); 00354 void wf77_recordset_dump_(int** obj, char* fn, int* fn_flen) { 00355 char* C_fn = String_F2C(fn, *fn_flen); 00356 RecordSet_dump(* ((void**) obj), C_fn); 00357 free(C_fn); 00358 } 00359 00360 00361 //short RecordSet_know_nRows(void* obj); 00362 void wf77_recordset_know_nrows_(int** obj, int* RET) { 00363 *RET = RecordSet_know_nRows(* ((void**) obj)); 00364 } 00365 00366 00367 //short RecordSet_eof(void* obj); 00368 void wf77_recordset_eof_(int** obj, int* RET) { 00369 *RET = RecordSet_eof(* ((void**) obj)); 00370 } 00371 00372 00373 //short RecordSet_alwaysSameStructure(void* obj); 00374 void wf77_recordset_alwayssamestructure_(int** obj, int* RET) { 00375 *RET = RecordSet_alwaysSameStructure(* ((void**) obj)); 00376 } 00377 00378 00379 //unsigned int RecordSet_nRows(void* obj); 00380 void wf77_recordset_nrows_(int** obj, long long int* RET) { 00381 *RET = RecordSet_nRows(* ((void**) obj)); 00382 } 00383 00384 00385 //unsigned int RecordSet_nFields(void* obj); 00386 void wf77_recordset_nfields_(int** obj, long long int* RET) { 00387 *RET = RecordSet_nFields(* ((void**) obj)); 00388 } 00389 00390 00391 //unsigned int RecordSet_pos(void* obj); 00392 void wf77_recordset_pos_(int** obj, long long int* RET) { 00393 *RET = RecordSet_pos(* ((void**) obj)); 00394 } 00395 00396 00397 //void* RecordSet_rec(void* obj); 00398 void wf77_recordset_rec_(int** obj, int** RET) { 00399 *RET = RecordSet_rec(* ((void**) obj)); 00400 } 00401 00402 00403 //void* RecordSet_metarec(void* obj); 00404 void wf77_recordset_metarec_(int** obj, int** RET) { 00405 *RET = RecordSet_metarec(* ((void**) obj)); 00406 } 00407 00408 00409 //void* new_DBConn(void* dummy); 00410 void wf77_new_dbconn_(int** dummy, int** RET) { 00411 *RET = new_DBConn(* ((void**) dummy)); 00412 } 00413 00414 00415 //void del_DBConn(void* obj); 00416 void wf77_del_dbconn_(int** obj) { 00417 del_DBConn(* ((void**) obj)); 00418 } 00419 00420 00421 //void DBConn_connect(void* obj, char* user, char* pass, char* db, char* host); 00422 void wf77_dbconn_connect_(int** obj, char* user, int* user_flen, char* pass, int* pass_flen, char* db, int* db_flen, char* host, int* host_flen) { 00423 char* C_user = String_F2C(user, *user_flen); 00424 char* C_pass = String_F2C(pass, *pass_flen); 00425 char* C_db = String_F2C(db, *db_flen); 00426 char* C_host = String_F2C(host, *host_flen); 00427 DBConn_connect(* ((void**) obj), C_user, C_pass, C_db, C_host); 00428 free(C_user); 00429 free(C_pass); 00430 free(C_db); 00431 free(C_host); 00432 } 00433 00434 00435 //void DBConn_close(void* obj); 00436 void wf77_dbconn_close_(int** obj) { 00437 DBConn_close(* ((void**) obj)); 00438 } 00439 00440 00441 //short DBConn_isOpen(void* obj); 00442 void wf77_dbconn_isopen_(int** obj, int* RET) { 00443 *RET = DBConn_isOpen(* ((void**) obj)); 00444 } 00445 00446 00447 //void* DBConn_newDBConn(void* obj); 00448 void wf77_dbconn_newdbconn_(int** obj, int** RET) { 00449 *RET = DBConn_newDBConn(* ((void**) obj)); 00450 } 00451 00452 00453 //void* new_Query(void* dummy, void* lconn, short handleNewDBConn); 00454 void wf77_new_query_(int** dummy, int** lconn, int* handleNewDBConn, int** RET) { 00455 *RET = new_Query(* ((void**) dummy), * ((void**) lconn), * ((short*) handleNewDBConn)); 00456 } 00457 00458 00459 //void del_Query(void* obj); 00460 void wf77_del_query_(int** obj) { 00461 del_Query(* ((void**) obj)); 00462 } 00463 00464 00465 //void Query_query(void* obj, char* query, short StoreResult); 00466 void wf77_query_query_(int** obj, char* query, int* query_flen, int* StoreResult) { 00467 char* C_query = String_F2C(query, *query_flen); 00468 Query_query(* ((void**) obj), C_query, * ((short*) StoreResult)); 00469 free(C_query); 00470 } 00471 00472 00473 //void Query_prepare(void* obj, char* query); 00474 void wf77_query_prepare_(int** obj, char* query, int* query_flen) { 00475 char* C_query = String_F2C(query, *query_flen); 00476 Query_prepare(* ((void**) obj), C_query); 00477 free(C_query); 00478 } 00479 00480 00481 //void Query_prepare_with_parameters(void* obj, int op, char* fields, char* table, char* where); 00482 void wf77_query_prepare_with_parameters_(int** obj, int* op, char* fields, int* fields_flen, char* table, int* table_flen, char* where, int* where_flen) { 00483 char* C_fields = String_F2C(fields, *fields_flen); 00484 char* C_table = String_F2C(table, *table_flen); 00485 char* C_where = String_F2C(where, *where_flen); 00486 Query_prepare_with_parameters(* ((void**) obj), * ((int*) op), C_fields, C_table, C_where); 00487 free(C_fields); 00488 free(C_table); 00489 free(C_where); 00490 } 00491 00492 00493 //unsigned int Query_nAffectedRows(void* obj); 00494 void wf77_query_naffectedrows_(int** obj, long long int* RET) { 00495 *RET = Query_nAffectedRows(* ((void**) obj)); 00496 } 00497 00498 00499 //void* Query_param(void* obj); 00500 void wf77_query_param_(int** obj, int** RET) { 00501 *RET = Query_param(* ((void**) obj)); 00502 } 00503 00504 00505 //void* Query_lookup(void* obj, char* field, char* table, char* where); 00506 void wf77_query_lookup_(int** obj, char* field, int* field_flen, char* table, int* table_flen, char* where, int* where_flen, int** RET) { 00507 char* C_field = String_F2C(field, *field_flen); 00508 char* C_table = String_F2C(table, *table_flen); 00509 char* C_where = String_F2C(where, *where_flen); 00510 *RET = Query_lookup(* ((void**) obj), C_field, C_table, C_where); 00511 free(C_field); 00512 free(C_table); 00513 free(C_where); 00514 } 00515 00516 00517 //short Query_gotRecordSet(void* obj); 00518 void wf77_query_gotrecordset_(int** obj, int* RET) { 00519 *RET = Query_gotRecordSet(* ((void**) obj)); 00520 } 00521 00522 00523 //void Query_execute(void* obj, short StoreResult); 00524 void wf77_query_execute_(int** obj, int* StoreResult) { 00525 Query_execute(* ((void**) obj), * ((short*) StoreResult)); 00526 } 00527 00528 00529 //void Query_close(void* obj); 00530 void wf77_query_close_(int** obj) { 00531 Query_close(* ((void**) obj)); 00532 } 00533 00534 00535 //void* new_Table(void* dummy, void* lconn, char* table, char* fieldkey); 00536 void wf77_new_table_(int** dummy, int** lconn, char* table, int* table_flen, char* fieldkey, int* fieldkey_flen, int** RET) { 00537 char* C_table = String_F2C(table, *table_flen); 00538 char* C_fieldkey = String_F2C(fieldkey, *fieldkey_flen); 00539 *RET = new_Table(* ((void**) dummy), * ((void**) lconn), C_table, C_fieldkey); 00540 free(C_table); 00541 free(C_fieldkey); 00542 } 00543 00544 00545 //void del_Table(void* obj); 00546 void wf77_del_table_(int** obj) { 00547 del_Table(* ((void**) obj)); 00548 } 00549 00550 00551 //void Table_loadTable(void* obj); 00552 void wf77_table_loadtable_(int** obj) { 00553 Table_loadTable(* ((void**) obj)); 00554 } 00555 00556 00557 //void* Table_newRec(void* obj); 00558 void wf77_table_newrec_(int** obj, int** RET) { 00559 *RET = Table_newRec(* ((void**) obj)); 00560 } 00561 00562 00563 //void Table_insert(void* obj); 00564 void wf77_table_insert_(int** obj) { 00565 Table_insert(* ((void**) obj)); 00566 } 00567 00568 00569 //void Table_update(void* obj); 00570 void wf77_table_update_(int** obj) { 00571 Table_update(* ((void**) obj)); 00572 } 00573 00574 00575 //void* new_Client(void* dummy, char* path, char* server, int port, int ssl, unsigned int timeout); 00576 void wf77_new_client_(int** dummy, char* path, int* path_flen, char* server, int* server_flen, int* port, int* ssl, long long int* timeout, int** RET) { 00577 char* C_path = String_F2C(path, *path_flen); 00578 char* C_server = String_F2C(server, *server_flen); 00579 *RET = new_Client(* ((void**) dummy), C_path, C_server, * ((int*) port), * ((int*) ssl), * ((unsigned int*) timeout)); 00580 free(C_path); 00581 free(C_server); 00582 } 00583 00584 00585 //void del_Client(void* obj); 00586 void wf77_del_client_(int** obj) { 00587 del_Client(* ((void**) obj)); 00588 } 00589 00590 00591 //short Client_login(void* obj, char* user, char* pass, char* db); 00592 void wf77_client_login_(int** obj, char* user, int* user_flen, char* pass, int* pass_flen, char* db, int* db_flen, int* RET) { 00593 char* C_user = String_F2C(user, *user_flen); 00594 char* C_pass = String_F2C(pass, *pass_flen); 00595 char* C_db = String_F2C(db, *db_flen); 00596 *RET = Client_login(* ((void**) obj), C_user, C_pass, C_db); 00597 free(C_user); 00598 free(C_pass); 00599 free(C_db); 00600 } 00601 00602 00603 //short Client_exec(void* obj, char* cmd, void* data); 00604 void wf77_client_exec_(int** obj, char* cmd, int* cmd_flen, int** data, int* RET) { 00605 char* C_cmd = String_F2C(cmd, *cmd_flen); 00606 *RET = Client_exec(* ((void**) obj), C_cmd, * ((void**) data)); 00607 free(C_cmd); 00608 } 00609 00610 00611 //void* Client_code(void* obj); 00612 void wf77_client_code_(int** obj, int** RET) { 00613 *RET = Client_code(* ((void**) obj)); 00614 } 00615 00616 00617 //void* Client_msg(void* obj); 00618 void wf77_client_msg_(int** obj, int** RET) { 00619 *RET = Client_msg(* ((void**) obj)); 00620 } 00621 00622 00623 //void* Client_out(void* obj); 00624 void wf77_client_out_(int** obj, int** RET) { 00625 *RET = Client_out(* ((void**) obj)); 00626 } 00627 00628 00629 //void* Client_recv(void* obj); 00630 void wf77_client_recv_(int** obj, int** RET) { 00631 *RET = Client_recv(* ((void**) obj)); 00632 } 00633 00634 00635 //void* Client_aux(void* obj); 00636 void wf77_client_aux_(int** obj, int** RET) { 00637 *RET = Client_aux(* ((void**) obj)); 00638 } 00639 00640 00641 //void* new_Conf(void* dummy, char* filename); 00642 void wf77_new_conf_(int** dummy, char* filename, int* filename_flen, int** RET) { 00643 char* C_filename = String_F2C(filename, *filename_flen); 00644 *RET = new_Conf(* ((void**) dummy), C_filename); 00645 free(C_filename); 00646 } 00647 00648 00649 //void del_Conf(void* obj); 00650 void wf77_del_conf_(int** obj) { 00651 del_Conf(* ((void**) obj)); 00652 } 00653 00654 00655 //char* Conf_sval(void* obj, char* section, char* key); 00656 void wf77_conf_sval_(int** obj, char* section, int* section_flen, char* key, int* key_flen, char* RET, int* RET_len) { 00657 char* C_section = String_F2C(section, *section_flen); 00658 char* C_key = String_F2C(key, *key_flen); 00659 char* RETSTR = Conf_sval(* ((void**) obj), C_section, C_key); 00660 free(C_section); 00661 free(C_key); 00662 if (! ifd_got_error()) 00663 String_C2F(RETSTR, RET, *RET_len); 00664 else 00665 String_C2F("", RET, *RET_len); 00666 } 00667 00668 00669 //int Conf_ival(void* obj, char* section, char* key); 00670 void wf77_conf_ival_(int** obj, char* section, int* section_flen, char* key, int* key_flen, int* RET) { 00671 char* C_section = String_F2C(section, *section_flen); 00672 char* C_key = String_F2C(key, *key_flen); 00673 *RET = Conf_ival(* ((void**) obj), C_section, C_key); 00674 free(C_section); 00675 free(C_key); 00676 } 00677 00678
![]() |
MCS (My Customizable Server) ver. 0.3.3-alpha3
|