- Timestamp:
- 21/12/11 12:04:21 (5 months ago)
- Location:
- trunk
- Files:
-
- 21 modified
-
ARBDB/adTest.cxx (modified) (2 diffs)
-
ARBDB/ad_core.cxx (modified) (1 diff)
-
ARBDB/ad_load.cxx (modified) (1 diff)
-
ARBDB/ad_prot.h (modified) (17 diffs)
-
ARBDB/ad_save_load.cxx (modified) (1 diff)
-
ARBDB/ad_t_prot.h (modified) (6 diffs)
-
ARBDB/adali.cxx (modified) (1 diff)
-
ARBDB/adcomm.cxx (modified) (1 diff)
-
ARBDB/adfile.cxx (modified) (1 diff)
-
ARBDB/aditem.cxx (modified) (4 diffs)
-
ARBDB/adlang1.cxx (modified) (1 diff)
-
ARBDB/admath.cxx (modified) (1 diff)
-
ARBDB/adquery.cxx (modified) (1 diff)
-
ARBDB/adsocket.cxx (modified) (8 diffs)
-
ARBDB/adstring.cxx (modified) (1 diff)
-
ARBDB/adtables.cxx (modified) (4 diffs)
-
ARBDB/adtools.cxx (modified) (6 diffs)
-
ARBDB/arbdb.cxx (modified) (16 diffs)
-
ARBDB/gb_prot.h (modified) (1 diff)
-
PERL_SCRIPTS/test/Makefile (modified) (1 diff)
-
SOURCE_TOOLS/deadcode.pl (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ARBDB/adTest.cxx
r8258 r8319 210 210 } 211 211 212 void GB_dump(GBDATA *gbd) {212 NOT4PERL void GB_dump(GBDATA *gbd) { 213 213 int max_lines = 2500; 214 214 GB_dump_internal(gbd, &max_lines); … … 219 219 } 220 220 221 void GB_dump_no_limit(GBDATA *gbd) {221 NOT4PERL void GB_dump_no_limit(GBDATA *gbd) { 222 222 GB_dump_internal(gbd, 0); 223 223 } -
trunk/ARBDB/ad_core.cxx
r8309 r8319 321 321 gb_write_index_key(GB_FATHER(gbd), gbd->index, new_index); 322 322 } 323 324 void gb_rename_entry(GBCONTAINER *gbc, const char *new_key) {325 GBCONTAINER *gb_father = GB_FATHER(gbc);326 GB_MAIN_TYPE *Main = GBCONTAINER_MAIN(gb_father);327 GBQUARK new_keyq;328 long new_gbm_index;329 330 gb_unlink_entry((GBDATA*)gbc);331 332 new_keyq = gb_key_2_quark(Main, new_key);333 new_gbm_index = GB_QUARK_2_GBMINDEX(Main, new_keyq);334 GB_GBM_INDEX(gbc) = new_gbm_index;335 336 gb_link_entry(gb_father, (GBDATA*)gbc, -1);337 gb_write_key((GBDATA*)gbc, new_key);338 }339 340 323 341 324 GBDATA *gb_make_entry(GBCONTAINER * father, const char *key, long index_pos, GBQUARK keyq, GB_TYPES type) { -
trunk/ARBDB/ad_load.cxx
r8309 r8319 1349 1349 } 1350 1350 1351 GBDATA *GB_login(const char *cpath, const char *opent, const char *user) {1351 static GBDATA *GB_login(const char *cpath, const char *opent, const char *user) { 1352 1352 /*! open an ARB database 1353 1353 * -
trunk/ARBDB/ad_prot.h
r8317 r8319 67 67 const char *GB_get_db_path(GBDATA *gbd); 68 68 void GB_dump_db_path(GBDATA *gbd); 69 void GB_dump(GBDATA *gbd);70 void GB_dump_no_limit(GBDATA *gbd);69 NOT4PERL void GB_dump(GBDATA *gbd); 70 NOT4PERL void GB_dump_no_limit(GBDATA *gbd); 71 71 GB_ERROR GB_fix_database(GBDATA *gb_main); 72 72 … … 74 74 void GB_set_verbose(void); 75 75 void GB_set_next_main_idx(long idx); 76 GBDATA *GB_login(const char *cpath, const char *opent, const char *user);77 76 GBDATA *GB_open(const char *path, const char *opent); 78 77 79 78 /* ad_save_load.cxx */ 80 79 GB_ERROR GB_save(GBDATA *gb, const char *path, const char *savetype); 81 GB_ERROR GB_create_parent_directory(const char *path);82 80 GB_ERROR GB_create_directory(const char *path); 83 81 GB_ERROR GB_save_in_arbprop(GBDATA *gb, const char *path, const char *savetype); … … 97 95 long GB_read_clients(GBDATA *gbd); 98 96 bool GB_is_server(GBDATA *gbd); 99 bool GB_is_client(GBDATA *gbd);100 97 GBDATA *GBCMC_find(GBDATA *gbd, const char *key, GB_TYPES type, const char *str, GB_CASE case_sens, GB_SEARCH_TYPE gbs); 101 98 GB_ERROR GB_tell_server_dont_wait(GBDATA *gbd); … … 110 107 char *GB_find_all_files(const char *dir, const char *mask, bool filename_only); 111 108 char *GB_find_latest_file(const char *dir, const char *mask); 112 const char *GB_existing_file(const char *file, bool warn_when_not_found);113 109 char *GB_lib_file(bool warn_when_not_found, const char *libprefix, const char *filename); 114 110 char *GB_property_file(bool warn_when_not_found, const char *filename); … … 160 156 /* adlang1.cxx */ 161 157 NOT4PERL void GB_set_export_sequence_hook(gb_export_sequence_cb escb); 162 void GB_set_ACISRT_trace(int enable);163 158 int GB_get_ACISRT_trace(void); 164 159 … … 191 186 /* admath.cxx */ 192 187 double GB_log_fak(int n); 193 double GB_frandom(void);194 188 int GB_random(int range); 195 189 … … 201 195 202 196 /* adquery.cxx */ 203 const char *GB_get_GBDATA_path(GBDATA *gbd);204 197 GBDATA *GB_find_sub_by_quark(GBDATA *father, GBQUARK key_quark, GBDATA *after, size_t skip_over); 205 198 GBDATA *GB_find(GBDATA *gbd, const char *key, GB_SEARCH_TYPE gbs); … … 234 227 GB_ULONG GB_last_saved_time(GBDATA *gb_main); 235 228 GB_ERROR GB_textprint(const char *path) __ATTR__USERESULT; 236 GB_ERROR GB_xterm(void) __ATTR__USERESULT;237 GB_ERROR GB_xcmd(const char *cmd, bool background, bool wait_only_if_error) __ATTR__USERESULT_TODO;238 229 char *GB_executable(GB_CSTR exe_name); 239 void GB_setenv(const char *var, const char *value);240 GB_CSTR GB_getenvARB_XTERM(void);241 GB_CSTR GB_getenvARB_XCMD(void);242 230 GB_CSTR GB_getenvUSER(void); 243 GB_CSTR GB_getenvHOME(void);244 231 GB_CSTR GB_getenvARBHOME(void); 245 232 GB_CSTR GB_getenvARBMACRO(void); 246 233 GB_CSTR GB_getenvARBMACROHOME(void); 247 GB_CSTR GB_getenvARBCONFIG(void);248 GB_CSTR GB_getenvPATH(void);249 234 GB_CSTR GB_getenvARB_GS(void); 250 235 GB_CSTR GB_getenvARB_PDFVIEW(void); … … 256 241 bool GB_host_is_local(const char *hostname); 257 242 GB_ULONG GB_get_physical_memory(void); 243 GB_ERROR GB_xterm(void) __ATTR__USERESULT; 244 GB_ERROR GB_xcmd(const char *cmd, bool background, bool wait_only_if_error) __ATTR__USERESULT_TODO; 258 245 GB_CSTR GB_append_suffix(const char *name, const char *suffix); 259 246 GB_CSTR GB_canonical_path(const char *anypath); … … 272 259 273 260 /* adstring.cxx */ 274 void GB_raise_critical_error(const char *msg) __ATTR__NORETURN;275 261 char *GBS_string_2_key(const char *str); 276 262 char *GB_memdup(const char *source, size_t len); … … 327 313 GB_BUFFER GB_give_other_buffer(GB_CBUFFER buffer, long size); 328 314 void GB_atexit(void (*exitfun)()); 329 void GB_exit_gb(void);330 315 void GB_init_gb(void); 331 316 int GB_open_DBs(void); … … 343 328 long GB_read_string_count(GBDATA *gbd); 344 329 GB_CSTR GB_read_link_pntr(GBDATA *gbd); 345 char *GB_read_link(GBDATA *gbd);346 long GB_read_link_count(GBDATA *gbd);347 330 long GB_read_bits_count(GBDATA *gbd); 348 331 GB_CSTR GB_read_bits_pntr(GBDATA *gbd, char c_0, char c_1); … … 355 338 GB_UINT4 *GB_read_ints(GBDATA *gbd); 356 339 GB_CFLOAT *GB_read_floats_pntr(GBDATA *gbd); 357 long GB_read_floats_count(GBDATA *gbd);358 340 char *GB_read_as_string(GBDATA *gbd); 359 341 long GB_read_from_ints(GBDATA *gbd, long index); … … 374 356 int GB_read_security_read(GBDATA *gbd); 375 357 int GB_read_security_delete(GBDATA *gbd); 376 int GB_get_my_security(GBDATA *gbd);377 358 GB_ERROR GB_write_security_write(GBDATA *gbd, unsigned long level); 378 359 GB_ERROR GB_write_security_read(GBDATA *gbd, unsigned long level); … … 394 375 GBDATA *GB_get_root(GBDATA *gbd); 395 376 bool GB_check_father(GBDATA *gbd, GBDATA *gb_maybefather); 396 int GB_rename(GBDATA *gbc, const char *new_key);397 377 GBDATA *GB_create(GBDATA *father, const char *key, GB_TYPES type); 398 378 GBDATA *GB_create_container(GBDATA *father, const char *key); … … 406 386 bool GB_is_temporary(GBDATA *gbd); 407 387 bool GB_in_temporary_branch(GBDATA *gbd); 408 GB_ERROR GB_push_local_transaction(GBDATA *gbd);409 GB_ERROR GB_pop_local_transaction(GBDATA *gbd);410 388 GB_ERROR GB_push_transaction(GBDATA *gbd); 411 389 GB_ERROR GB_pop_transaction(GBDATA *gbd); … … 427 405 void GB_remove_all_callbacks_to(GBDATA *gbd, GB_CB_TYPE type, GB_CB func); 428 406 GB_ERROR GB_ensure_callback(GBDATA *gbd, GB_CB_TYPE type, GB_CB func, int *clientdata); 429 GB_ERROR GB_release(GBDATA *gbd);430 int GB_testlocal(GBDATA *gbd);431 407 int GB_nsons(GBDATA *gbd); 432 408 void GB_disable_quicksave(GBDATA *gbd, const char *reason); 433 409 GB_ERROR GB_resort_data_base(GBDATA *gb_main, GBDATA **new_order_list, long listsize); 434 410 GB_ERROR GB_resort_system_folder_to_top(GBDATA *gb_main); 435 GB_ERROR GB_write_usr_public(GBDATA *gbd, long flags);436 long GB_read_usr_public(GBDATA *gbd);437 411 long GB_read_usr_private(GBDATA *gbd); 438 412 GB_ERROR GB_write_usr_private(GBDATA *gbd, long ref); -
trunk/ARBDB/ad_save_load.cxx
r8309 r8319 850 850 } 851 851 852 GB_ERROR GB_create_parent_directory(const char *path) {852 static GB_ERROR GB_create_parent_directory(const char *path) { 853 853 GB_ERROR error = NULL; 854 854 char *parent; -
trunk/ARBDB/ad_t_prot.h
r8309 r8319 47 47 long GBT_get_alignment_len(GBDATA *gb_main, const char *aliname); 48 48 GB_ERROR GBT_set_alignment_len(GBDATA *gb_main, const char *aliname, long new_len); 49 int GBT_get_alignment_aligned(GBDATA *gb_main, const char *aliname);50 49 char *GBT_get_alignment_type_string(GBDATA *gb_main, const char *aliname); 51 50 GB_alignment_type GBT_get_alignment_type(GBDATA *gb_main, const char *aliname); … … 64 63 GBDATA *GBT_find_or_create_SAI(GBDATA *gb_main, const char *name); 65 64 GBDATA *GBT_find_item_rel_item_data(GBDATA *gb_item_data, const char *id_field, const char *id_value); 66 GBDATA *GBT_expect_item_rel_item_data(GBDATA *gb_item_data, const char *id_field, const char *id_value);67 65 GBDATA *GBT_get_species_data(GBDATA *gb_main); 68 66 GBDATA *GBT_first_marked_species_rel_species_data(GBDATA *gb_species_data); … … 76 74 GBDATA *GBT_expect_species(GBDATA *gb_main, const char *name); 77 75 GBDATA *GBT_get_SAI_data(GBDATA *gb_main); 78 GBDATA *GBT_first_marked_SAI_rel_SAI_data(GBDATA *gb_sai_data);79 GBDATA *GBT_next_marked_SAI(GBDATA *gb_sai);80 76 GBDATA *GBT_first_SAI_rel_SAI_data(GBDATA *gb_sai_data); 81 77 GBDATA *GBT_first_SAI(GBDATA *gb_main); … … 84 80 GBDATA *GBT_find_SAI(GBDATA *gb_main, const char *name); 85 81 GBDATA *GBT_expect_SAI(GBDATA *gb_main, const char *name); 86 long GBT_get_item_count(GBDATA *gb_parent_of_container, const char *item_container_name);87 82 long GBT_get_species_count(GBDATA *gb_main); 88 83 long GBT_get_SAI_count(GBDATA *gb_main); 89 char *GBT_create_unique_item_identifier(GBDATA *gb_item_container, const char *id_field, const char *default_id);90 84 char *GBT_create_unique_species_name(GBDATA *gb_main, const char *default_name); 91 85 void GBT_mark_all(GBDATA *gb_main, int flag); … … 115 109 GBDATA *GBT_next_table(GBDATA *gb_table); 116 110 GBDATA *GBT_first_table_entry(GBDATA *gb_table); 117 GBDATA *GBT_first_marked_table_entry(GBDATA *gb_table);118 111 GBDATA *GBT_next_table_entry(GBDATA *gb_table_entry); 119 GBDATA *GBT_next_marked_table_entry(GBDATA *gb_table_entry);120 GBDATA *GBT_find_table_entry(GBDATA *gb_table, const char *id);121 GBDATA *GBT_open_table_entry(GBDATA *gb_table, const char *id);122 112 GBDATA *GBT_first_table_field(GBDATA *gb_table); 123 GBDATA *GBT_first_marked_table_field(GBDATA *gb_table);124 113 GBDATA *GBT_next_table_field(GBDATA *gb_table_field); 125 GBDATA *GBT_next_marked_table_field(GBDATA *gb_table_field);126 114 GBDATA *GBT_find_table_field(GBDATA *gb_table, const char *id); 127 GB_TYPES GBT_get_type_of_table_entry_field(GBDATA *gb_table, const char *fieldname);128 GB_ERROR GBT_savely_write_table_entry_field(GBDATA *gb_table, GBDATA *gb_entry, const char *fieldname, const char *value_in_ascii_format);129 115 GBDATA *GBT_open_table_field(GBDATA *gb_table, const char *fieldname, GB_TYPES type_of_field); 130 116 … … 151 137 GB_ERROR GBT_write_byte(GBDATA *gb_container, const char *fieldpath, unsigned char content); 152 138 GB_ERROR GBT_write_float(GBDATA *gb_container, const char *fieldpath, double content); 153 GBDATA *GB_test_link_follower(GBDATA *gb_main, GBDATA *gb_link, const char *link);154 139 GBDATA *GBT_open(const char *path, const char *opent); 155 140 GB_ERROR GBT_remote_action(GBDATA *gb_main, const char *application, const char *action_name); 156 141 GB_ERROR GBT_remote_awar(GBDATA *gb_main, const char *application, const char *awar_name, const char *value); 157 142 GB_ERROR GBT_remote_read_awar(GBDATA *gb_main, const char *application, const char *awar_name); 158 const char *GBT_remote_touch_awar(GBDATA *gb_main, const char *application, const char *awar_name);159 143 char *GB_generate_notification(GBDATA *gb_main, void (*cb)(const char *message, void *client_data), const char *message, void *client_data); 160 144 GB_ERROR GB_remove_last_notification(GBDATA *gb_main); -
trunk/ARBDB/adali.cxx
r8309 r8319 734 734 } 735 735 736 int GBT_get_alignment_aligned(GBDATA *gb_main, const char *aliname) {737 GBDATA *gb_alignment = GBT_get_alignment(gb_main, aliname);738 return gb_alignment ? *GBT_read_int(gb_alignment, "aligned") : -1;739 }740 741 736 char *GBT_get_alignment_type_string(GBDATA *gb_main, const char *aliname) { 742 737 char *result = NULL; -
trunk/ARBDB/adcomm.cxx
r8309 r8319 1655 1655 return Main->local_mode; 1656 1656 } 1657 bool GB_is_client(GBDATA *gbd) {1658 return !GB_is_server(gbd);1659 }1660 1661 1657 static GB_ERROR gbcmc_unfold_list(int socket, GBDATA * gbd) 1662 1658 { -
trunk/ARBDB/adfile.cxx
r8309 r8319 195 195 } 196 196 197 const char *GB_existing_file(const char *file, bool warn_when_not_found) {197 static const char *GB_existing_file(const char *file, bool warn_when_not_found) { 198 198 // return 'file' if it's an existing readable file 199 199 // return NULL otherwise -
trunk/ARBDB/aditem.cxx
r7337 r8319 85 85 } 86 86 87 GBDATA *GBT_expect_item_rel_item_data(GBDATA *gb_item_data, const char *id_field, const char *id_value) {87 static GBDATA *GBT_expect_item_rel_item_data(GBDATA *gb_item_data, const char *id_field, const char *id_value) { 88 88 //! like GBT_find_item_rel_item_data(), but also exports an error if the item is not present 89 89 … … 150 150 } 151 151 152 GBDATA *GBT_first_marked_SAI_rel_SAI_data(GBDATA *gb_sai_data) {153 return GB_first_marked(gb_sai_data, "extended");154 }155 156 GBDATA *GBT_next_marked_SAI(GBDATA *gb_sai) {157 gb_assert(GB_has_key(gb_sai, "extended"));158 return GB_next_marked(gb_sai, "extended");159 }160 161 152 // Search SAIs 162 153 GBDATA *GBT_first_SAI_rel_SAI_data(GBDATA *gb_sai_data) { … … 192 183 // count items 193 184 194 long GBT_get_item_count(GBDATA *gb_parent_of_container, const char *item_container_name) {185 static long GBT_get_item_count(GBDATA *gb_parent_of_container, const char *item_container_name) { 195 186 // returns elements stored in a container 196 187 … … 216 207 // -------------------------------------------------------------------------------- 217 208 218 char *GBT_create_unique_item_identifier(GBDATA *gb_item_container, const char *id_field, const char *default_id) {209 static char *GBT_create_unique_item_identifier(GBDATA *gb_item_container, const char *id_field, const char *default_id) { 219 210 // returns an identifier not used by items in 'gb_item_container' 220 211 // 'id_field' is the entry that is used as identifier (e.g. 'name' for species) -
trunk/ARBDB/adlang1.cxx
r8103 r8319 36 36 static int trace = 0; 37 37 38 void GB_set_ACISRT_trace(int enable) { trace = enable; }38 static void GB_set_ACISRT_trace(int enable) { trace = enable; } 39 39 int GB_get_ACISRT_trace() { return trace; } 40 40 -
trunk/ARBDB/admath.cxx
r6385 r8319 40 40 static int randomSeeded = 0; 41 41 42 double GB_frandom() {43 // produces a random number in range [0.0 .. 1.0]44 if (!randomSeeded) {45 srand(time(0));46 randomSeeded = 1;47 }48 return ((double)rand())/RAND_MAX;49 }50 51 42 int GB_random(int range) { 52 43 // produces a random number in range [0 .. range-1] -
trunk/ARBDB/adquery.cxx
r8309 r8319 42 42 #define BUFFERSIZE 1024 43 43 44 const char *GB_get_GBDATA_path(GBDATA *gbd) {44 static const char *GB_get_GBDATA_path(GBDATA *gbd) { 45 45 static char *orgbuffer = NULL; 46 46 char *buffer; -
trunk/ARBDB/adsocket.cxx
r8309 r8319 517 517 } 518 518 519 GB_ERROR GB_xterm() { 520 // goes to header: __ATTR__USERESULT 521 const char *xt = GB_getenvARB_XTERM(); 522 const char *command = GBS_global_string("%s &", xt); 523 return GBK_system(command); 524 } 525 526 GB_ERROR GB_xcmd(const char *cmd, bool background, bool wait_only_if_error) { 527 // goes to header: __ATTR__USERESULT_TODO 528 529 // runs a command in an xterm 530 // if 'background' is true -> run asynchronous 531 // if 'wait_only_if_error' is true -> asynchronous does wait for keypress only if cmd fails 532 533 GBS_strstruct *strstruct = GBS_stropen(1024); 534 const char *xcmd = GB_getenvARB_XCMD(); 535 536 GBS_strcat(strstruct, "("); 537 GBS_strcat(strstruct, xcmd); 538 GBS_strcat(strstruct, " bash -c 'LD_LIBRARY_PATH=\""); 539 GBS_strcat(strstruct, GB_getenv("LD_LIBRARY_PATH")); 540 GBS_strcat(strstruct, "\";export LD_LIBRARY_PATH; ("); 541 GBS_strcat(strstruct, cmd); 542 543 if (background) { 544 if (wait_only_if_error) { 545 GBS_strcat(strstruct, ") || (echo; echo Press RETURN to close Window; read a)' ) &"); 519 // -------------------------------------------------------------------------------- 520 521 static GB_CSTR getenv_ignore_empty(GB_CSTR envvar) { 522 GB_CSTR result = getenv(envvar); 523 return (result && result[0]) ? result : 0; 524 } 525 526 static GB_CSTR GB_getenvPATH() { 527 static const char *path = 0; 528 if (!path) { 529 path = getenv_ignore_empty("PATH"); 530 if (!path) { 531 path = GBS_eval_env("/bin:/usr/bin:$(ARBHOME)/bin"); 532 GB_informationf("Your PATH variable is empty - using '%s' as search path.", path); 546 533 } 547 534 else { 548 GBS_strcat(strstruct, "; echo; echo Press RETURN to close Window; read a)' ) &"); 549 } 550 } 551 else { 552 if (wait_only_if_error) { 553 GBS_strcat(strstruct, ") || (echo; echo Press RETURN to close Window; read a)' )"); 554 } 555 else { // no wait 556 GBS_strcat(strstruct, " )' ) "); 557 } 558 } 559 560 GB_ERROR error = GBK_system(GBS_mempntr(strstruct)); 561 GBS_strforget(strstruct); 562 563 return error; 535 char *arbbin = GBS_eval_env("$(ARBHOME)/bin"); 536 if (strstr(path, arbbin) == 0) { 537 GB_warningf("Your PATH variable does not contain '%s'. Things may not work as expected.", arbbin); 538 } 539 free(arbbin); 540 } 541 } 542 return path; 564 543 } 565 544 … … 635 614 // Functions to access the environment variables used by ARB: 636 615 637 static GB_CSTR getenv_ignore_empty(GB_CSTR envvar) {638 GB_CSTR result = getenv(envvar);639 return (result && result[0]) ? result : 0;640 }641 642 616 static char *getenv_executable(GB_CSTR envvar) { 643 617 // get full path of executable defined by 'envvar' … … 680 654 } 681 655 682 void GB_setenv(const char *var, const char *value) {656 static void GB_setenv(const char *var, const char *value) { 683 657 if (setenv(var, value, 1) != 0) { 684 658 GB_warningf("Could not set environment variable '%s'. This might cause problems in subprocesses.\n" … … 687 661 } 688 662 689 GB_CSTR GB_getenvARB_XTERM() {663 static GB_CSTR GB_getenvARB_XTERM() { 690 664 static const char *xterm = 0; 691 665 if (!xterm) { … … 696 670 } 697 671 698 GB_CSTR GB_getenvARB_XCMD() {672 static GB_CSTR GB_getenvARB_XCMD() { 699 673 static const char *xcmd = 0; 700 674 if (!xcmd) { … … 727 701 728 702 729 GB_CSTR GB_getenvHOME() {703 static GB_CSTR GB_getenvHOME() { 730 704 static SmartCharPtr Home; 731 705 if (Home.isNull()) { … … 787 761 } 788 762 789 GB_CSTR GB_getenvARBCONFIG() {763 static GB_CSTR GB_getenvARBCONFIG() { 790 764 static const char *ac = 0; 791 765 if (!ac) ac = getenv_autodirectory("ARBCONFIG", GB_path_in_arbprop("cfgSave")); // doc in ../HELP_SOURCE/oldhelp/arb_envar.hlp@ARBCONFIG 792 766 return ac; 793 }794 795 GB_CSTR GB_getenvPATH() {796 static const char *path = 0;797 if (!path) {798 path = getenv_ignore_empty("PATH");799 if (!path) {800 path = GBS_eval_env("/bin:/usr/bin:$(ARBHOME)/bin");801 GB_informationf("Your PATH variable is empty - using '%s' as search path.", path);802 }803 else {804 char *arbbin = GBS_eval_env("$(ARBHOME)/bin");805 if (strstr(path, arbbin) == 0) {806 GB_warningf("Your PATH variable does not contain '%s'. Things may not work as expected.", arbbin);807 }808 free(arbbin);809 }810 }811 return path;812 767 } 813 768 … … 988 943 } 989 944 945 // --------------------------- 946 // external commands 947 948 GB_ERROR GB_xterm() { 949 // goes to header: __ATTR__USERESULT 950 const char *xt = GB_getenvARB_XTERM(); 951 const char *command = GBS_global_string("%s &", xt); 952 return GBK_system(command); 953 } 954 955 GB_ERROR GB_xcmd(const char *cmd, bool background, bool wait_only_if_error) { 956 // goes to header: __ATTR__USERESULT_TODO 957 958 // runs a command in an xterm 959 // if 'background' is true -> run asynchronous 960 // if 'wait_only_if_error' is true -> asynchronous does wait for keypress only if cmd fails 961 962 GBS_strstruct *strstruct = GBS_stropen(1024); 963 const char *xcmd = GB_getenvARB_XCMD(); 964 965 GBS_strcat(strstruct, "("); 966 GBS_strcat(strstruct, xcmd); 967 GBS_strcat(strstruct, " bash -c 'LD_LIBRARY_PATH=\""); 968 GBS_strcat(strstruct, GB_getenv("LD_LIBRARY_PATH")); 969 GBS_strcat(strstruct, "\";export LD_LIBRARY_PATH; ("); 970 GBS_strcat(strstruct, cmd); 971 972 if (background) { 973 if (wait_only_if_error) { 974 GBS_strcat(strstruct, ") || (echo; echo Press RETURN to close Window; read a)' ) &"); 975 } 976 else { 977 GBS_strcat(strstruct, "; echo; echo Press RETURN to close Window; read a)' ) &"); 978 } 979 } 980 else { 981 if (wait_only_if_error) { 982 GBS_strcat(strstruct, ") || (echo; echo Press RETURN to close Window; read a)' )"); 983 } 984 else { // no wait 985 GBS_strcat(strstruct, " )' ) "); 986 } 987 } 988 989 GB_ERROR error = GBK_system(GBS_mempntr(strstruct)); 990 GBS_strforget(strstruct); 991 992 return error; 993 } 994 990 995 // --------------------------------------------- 991 996 // path completion (parts former located in AWT) -
trunk/ARBDB/adstring.cxx
r8313 r8319 26 26 27 27 #include <valgrind.h> 28 29 // -----------------------30 // error handling31 32 void GB_raise_critical_error(const char *msg) {33 // goes to header: __ATTR__NORETURN34 fprintf(stderr, "------------------------------------------------------------\n");35 fprintf(stderr, "A critical error occurred in ARB\nError-Message: %s\n", msg);36 #if defined(DEBUG)37 fprintf(stderr, "Run the debugger to find the location where the error was raised.\n");38 #endif // DEBUG39 fprintf(stderr, "------------------------------------------------------------\n");40 gb_assert(0);41 exit(-1);42 }43 44 // --------------------------------------------------------------------------------45 46 28 47 29 static char *GBS_string_2_key_with_exclusions(const char *str, const char *additional) { -
trunk/ARBDB/adtables.cxx
r8309 r8319 40 40 * } 41 41 */ 42 43 static GBDATA *GBT_find_table_entry(GBDATA *gb_table, const char *id) { 44 GBDATA *gb_entries = GB_entry(gb_table, "entries"); 45 GBDATA *gb_entry_name = GB_find_string(gb_entries, "name", id, GB_IGNORE_CASE, SEARCH_GRANDCHILD); 46 if (!gb_entry_name) return NULL; 47 return GB_get_father(gb_entry_name); 48 } 42 49 43 50 static GBDATA *gbt_table_link_follower(GBDATA *gb_main, GBDATA */*gb_link*/, const char *link) { … … 140 147 } 141 148 142 GBDATA *GBT_first_marked_table_entry(GBDATA *gb_table) {143 GBDATA *gb_entries = GB_entry(gb_table, "entries");144 return GB_first_marked(gb_entries, "entry");145 }146 147 149 GBDATA *GBT_next_table_entry(GBDATA *gb_table_entry) { 148 150 gb_assert(GB_has_key(gb_table_entry, "entry")); 149 151 return GB_nextEntry(gb_table_entry); 150 }151 152 GBDATA *GBT_next_marked_table_entry(GBDATA *gb_table_entry) {153 return GB_next_marked(gb_table_entry, "entry");154 }155 156 GBDATA *GBT_find_table_entry(GBDATA *gb_table, const char *id) {157 GBDATA *gb_entries = GB_entry(gb_table, "entries");158 GBDATA *gb_entry_name = GB_find_string(gb_entries, "name", id, GB_IGNORE_CASE, SEARCH_GRANDCHILD);159 if (!gb_entry_name) return NULL;160 return GB_get_father(gb_entry_name);161 }162 163 GBDATA *GBT_open_table_entry(GBDATA *gb_table, const char *id) {164 GBDATA *gb_entries = GB_entry(gb_table, "entries");165 GBDATA *gb_entry_name = GB_find_string(gb_entries, "name", id, GB_IGNORE_CASE, SEARCH_GRANDCHILD);166 GBDATA *gb_entry;167 if (gb_entry_name) GB_get_father(gb_entry_name);168 gb_entry = GB_create_container(gb_entries, "entry");169 gb_entry_name = GB_create(gb_entry, "name", GB_STRING);170 GB_write_string(gb_entry_name, id);171 return gb_entry;172 152 } 173 153 … … 177 157 } 178 158 179 GBDATA *GBT_first_marked_table_field(GBDATA *gb_table) {180 GBDATA *gb_fields = GB_entry(gb_table, "fields");181 return GB_first_marked(gb_fields, "field");182 }183 159 GBDATA *GBT_next_table_field(GBDATA *gb_table_field) { 184 160 gb_assert(GB_has_key(gb_table_field, "field")); 185 161 return GB_nextEntry(gb_table_field); 186 }187 188 GBDATA *GBT_next_marked_table_field(GBDATA *gb_table_field) {189 return GB_next_marked(gb_table_field, "field");190 162 } 191 163 … … 195 167 if (!gb_field_name) return NULL; 196 168 return GB_get_father(gb_field_name); 197 }198 199 GB_TYPES GBT_get_type_of_table_entry_field(GBDATA *gb_table, const char *fieldname) {200 GBDATA *gb_fields = GB_entry(gb_table, "fields");201 GBDATA *gb_field_name = GB_find_string(gb_fields, "name", fieldname, GB_IGNORE_CASE, SEARCH_GRANDCHILD);202 GBDATA *gb_field_type;203 if (!gb_field_name) return GB_NONE;204 gb_field_type = GB_entry(gb_field_name, "type");205 return (GB_TYPES) GB_read_int(gb_field_type);206 }207 208 GB_ERROR GBT_savely_write_table_entry_field(GBDATA *gb_table, GBDATA *gb_entry, const char *fieldname, const char *value_in_ascii_format) {209 GBDATA *gb_entry_field;210 GB_TYPES type = GBT_get_type_of_table_entry_field(gb_table, fieldname);211 if (type == GB_NONE) {212 return GB_export_errorf("There is no field description '%s' for your table", fieldname);213 }214 gb_entry_field = GB_search(gb_entry, "fieldname", type);215 return GB_write_as_string(gb_entry_field, value_in_ascii_format);216 169 } 217 170 -
trunk/ARBDB/adtools.cxx
r8037 r8319 515 515 516 516 517 GBDATA *GB_test_link_follower(GBDATA *gb_main, GBDATA *gb_link, const char *link) {517 static GBDATA *GB_test_link_follower(GBDATA *gb_main, GBDATA *gb_link, const char *link) { 518 518 GBDATA *linktarget = GB_search(gb_main, "tmp/link/string", GB_STRING); 519 519 // GBUSE(gb_link); … … 589 589 * - BIO::remote_action (use of GBT_remote_action) 590 590 * - BIO::remote_awar (use of GBT_remote_awar) 591 * - BIO::remote_read_awar (use of GBT_remote_read_awar - seems unused) 592 * - BIO::remote_touch_awar (use of GBT_remote_touch_awar - seems unused) 591 * - BIO::remote_read_awar (use of GBT_remote_read_awar) 593 592 */ 594 593 … … 658 657 659 658 GB_ERROR GBT_remote_action(GBDATA *gb_main, const char *application, const char *action_name) { 659 // needs to be public (needed by perl-macros) 660 660 661 remote_awars awars; 661 662 GBDATA *gb_action; … … 674 675 675 676 GB_ERROR GBT_remote_awar(GBDATA *gb_main, const char *application, const char *awar_name, const char *value) { 677 // needs to be public (needed by perl-macros) 678 676 679 remote_awars awars; 677 680 GBDATA *gb_awar; … … 692 695 693 696 GB_ERROR GBT_remote_read_awar(GBDATA *gb_main, const char *application, const char *awar_name) { 697 // needs to be public (needed by perl-macros) 698 694 699 remote_awars awars; 695 700 GBDATA *gb_awar; … … 707 712 return error; 708 713 } 709 710 const char *GBT_remote_touch_awar(GBDATA *gb_main, const char *application, const char *awar_name) {711 remote_awars awars;712 GBDATA *gb_awar;713 GB_ERROR error = NULL;714 715 gbt_build_remote_awars(&awars, application);716 gb_awar = gbt_remote_search_awar(gb_main, awars.awar_awar);717 718 error = GB_begin_transaction(gb_main);719 if (!error) error = GB_write_string(gb_awar, awar_name);720 if (!error) error = GBT_write_string(gb_main, awars.awar_action, "AWAR_REMOTE_TOUCH");721 error = GB_end_transaction(gb_main, error);722 723 if (!error) error = gbt_wait_for_remote_action(gb_main, gb_awar, awars.awar_result);724 return error;725 }726 727 714 728 715 // --------------------------- -
trunk/ARBDB/arbdb.cxx
r8313 r8319 392 392 } 393 393 394 void GB_exit_gb() {394 static void GB_exit_gb() { 395 395 GB_shell::ensure_inside(); 396 396 … … 803 803 } 804 804 805 char *GB_read_link(GBDATA *gbd)805 static char *GB_read_link(GBDATA *gbd) 806 806 { 807 807 const char *d; … … 811 811 return GB_memdup(d, GB_GETSIZE(gbd)+1); 812 812 } 813 814 long GB_read_link_count(GBDATA *gbd)815 {816 GB_TEST_READ(gbd, GB_LINK, "GB_read_link_pntr");817 return GB_GETSIZE(gbd);818 }819 820 813 821 814 long GB_read_bits_count(GBDATA *gbd) … … 902 895 } 903 896 904 long GB_read_ints_count(GBDATA *gbd) 905 { 897 long GB_read_ints_count(GBDATA *gbd) { // used by ../PERL_SCRIPTS/SAI/SAI.pm@read_ints_count 906 898 GB_TEST_READ(gbd, GB_INTS, "GB_read_ints_count"); 907 899 return GB_GETSIZE(gbd); … … 947 939 } 948 940 949 long GB_read_floats_count(GBDATA *gbd)941 static long GB_read_floats_count(GBDATA *gbd) 950 942 { 951 943 GB_TEST_READ(gbd, GB_FLOATS, "GB_read_floats_count"); … … 980 972 // array type access functions (intended for perl use) 981 973 982 long GB_read_from_ints(GBDATA *gbd, long index) { 974 long GB_read_from_ints(GBDATA *gbd, long index) { // used by ../PERL_SCRIPTS/SAI/SAI.pm@read_from_ints 983 975 static GBDATA *last_gbd = 0; 984 976 static long count = 0; … … 1330 1322 return GB_GET_SECURITY_DELETE(gbd); 1331 1323 } 1332 int GB_get_my_security(GBDATA *gbd) {1333 return GB_MAIN(gbd)->security_level;1334 }1335 1336 1324 GB_ERROR GB_write_security_write(GBDATA *gbd, unsigned long level) 1337 1325 { … … 1347 1335 return 0; 1348 1336 } 1349 GB_ERROR GB_write_security_read(GBDATA *gbd, unsigned long level) 1337 GB_ERROR GB_write_security_read(GBDATA *gbd, unsigned long level) // @@@ unused 1350 1338 { 1351 1339 GB_MAIN_TYPE *Main = GB_MAIN(gbd); … … 1359 1347 return 0; 1360 1348 } 1361 1362 1349 GB_ERROR GB_write_security_delete(GBDATA *gbd, unsigned long level) 1363 1350 { … … 1472 1459 // 1473 1460 // Other uses (maybe just to pass GB_MAIN_TYPE instead of GBDATA as GB_key_2_quark likes): 1474 // - gb_rename_entry1475 1461 // - gb_make_entry 1476 1462 // - compress_sequence_tree … … 1568 1554 gb_touch_entry((GBDATA *)gbd, GB_CREATED); 1569 1555 return (GBDATA *)gbd; 1570 }1571 1572 static void gb_rename(GBCONTAINER *gbc, const char *new_key) {1573 gb_rename_entry(gbc, new_key);1574 }1575 1576 int GB_rename(GBDATA *gbc, const char *new_key) {1577 /*! User accessible rename, check everything1578 * returns 0 if successful!1579 */1580 GBCONTAINER *old_father, *new_father;1581 if (GB_check_key(new_key)) {1582 GB_print_error();1583 return -1;1584 }1585 1586 GB_test_transaction(gbc);1587 old_father = GB_FATHER(gbc);1588 1589 if (GB_TYPE(gbc) != GB_DB) {1590 GB_internal_error("GB_rename has to be called with container");1591 return -1;1592 }1593 1594 gb_rename((GBCONTAINER*)gbc, new_key);1595 1596 new_father = GB_FATHER(gbc);1597 if (old_father != new_father) {1598 GB_internal_error("father changed during rename");1599 return -1;1600 }1601 1602 gb_touch_header(new_father);1603 gb_touch_entry(gbc, GB_NORMAL_CHANGE);1604 1605 return 0;1606 1556 } 1607 1557 … … 1984 1934 } 1985 1935 1986 GB_ERROR GB_clear_temporary(GBDATA *gbd) { 1936 GB_ERROR GB_clear_temporary(GBDATA *gbd) { // @@@ used in ptpan branch - do not remove 1987 1937 //! undo effect of GB_set_temporary() 1988 1938 … … 1999 1949 } 2000 1950 2001 bool GB_in_temporary_branch(GBDATA *gbd) { 1951 bool GB_in_temporary_branch(GBDATA *gbd) { // @@@ used in ptpan branch - do not remove 2002 1952 /*! @return true, if 'gbd' is member of a temporary subtree, 2003 1953 * i.e. if GB_is_temporary(itself or any parent) … … 2015 1965 // transactions 2016 1966 2017 2018 GB_ERROR GB_push_local_transaction(GBDATA *gbd) {2019 /*! Starts a read only transaction.2020 * Be sure that all data is cached. Be extremely careful!2021 */2022 GB_MAIN_TYPE *Main = GB_MAIN(gbd);2023 if (Main->transaction>0) {2024 return GB_push_transaction(gbd);2025 }2026 Main->transaction --;2027 return 0;2028 }2029 2030 GB_ERROR GB_pop_local_transaction(GBDATA *gbd) {2031 /*! Stops a read only transaction.2032 * Be sure that all data is cached!2033 */2034 2035 GB_MAIN_TYPE *Main = GB_MAIN(gbd);2036 if (Main->transaction>0) {2037 return GB_pop_transaction(gbd);2038 }2039 Main->transaction ++;2040 return 0;2041 }2042 1967 2043 1968 GB_ERROR GB_push_transaction(GBDATA *gbd) { … … 2629 2554 } 2630 2555 2631 GB_ERROR GB_release(GBDATA *gbd) {2632 /*! free cached data in client.2633 *2634 * Warning: pointers into the freed region(s) will get invalid!2635 */2636 GBCONTAINER *gbc;2637 GBDATA *gb;2638 int index;2639 GB_MAIN_TYPE *Main = GB_MAIN(gbd);2640 2641 GB_test_transaction(gbd);2642 if (Main->local_mode) return 0;2643 if (GB_ARRAY_FLAGS(gbd).changed && !gbd->flags2.update_in_server) {2644 GB_update_server(gbd);2645 }2646 if (GB_TYPE(gbd) != GB_DB) {2647 GB_ERROR error = GB_export_errorf("You cannot release non container (%s)",2648 GB_read_key_pntr(gbd));2649 GB_internal_error(error);2650 return error;2651 }2652 if (gbd->flags2.folded_container) return 0;2653 gbc = (GBCONTAINER *)gbd;2654 2655 for (index = 0; index < gbc->d.nheader; index++) {2656 if ((gb = GBCONTAINER_ELEM(gbc, index))) {2657 gb_delete_entry(&gb);2658 }2659 }2660 2661 gbc->flags2.folded_container = 1;2662 gb_do_callback_list(Main); // do all callbacks2663 return 0;2664 }2665 2666 int GB_testlocal(GBDATA *gbd) {2667 /*! test whether data is available as local data2668 *2669 * @return 1 if data is available2670 *2671 * important for callbacks, because only testlocal tested data is available2672 */2673 if (GB_TYPE(gbd) != GB_DB) return 1; // all non-containers are available2674 if (GB_MAIN(gbd)->local_mode) return 1; // everything is available in server2675 if (gbd->flags2.folded_container) return 0;2676 return 1;2677 }2678 2679 2556 int GB_nsons(GBDATA *gbd) { 2680 2557 /*! return number of child entries … … 2765 2642 free(new_order_list); 2766 2643 return error; 2767 }2768 2769 // -------------------2770 // user flags2771 2772 GB_ERROR GB_write_usr_public(GBDATA *gbd, long flags) {2773 GB_test_transaction(gbd);2774 if (GB_GET_SECURITY_WRITE(gbd) > GB_MAIN(gbd)->security_level)2775 return gb_security_error(gbd);2776 gbd->flags.user_flags = flags;2777 gb_touch_entry(gbd, GB_NORMAL_CHANGE);2778 return 0;2779 }2780 2781 long GB_read_usr_public(GBDATA *gbd)2782 {2783 GB_test_transaction(gbd);2784 return (long)gbd->flags.user_flags;2785 2644 } 2786 2645 -
trunk/ARBDB/gb_prot.h
r8309 r8319 24 24 char *gb_destroy_main(GB_MAIN_TYPE *Main); 25 25 GBDATA *gb_make_pre_defined_entry(GBCONTAINER *father, GBDATA *gbd, long index_pos, GBQUARK keyq); 26 void gb_rename_entry(GBCONTAINER *gbc, const char *new_key);27 26 GBDATA *gb_make_entry(GBCONTAINER *father, const char *key, long index_pos, GBQUARK keyq, GB_TYPES type); 28 27 GBCONTAINER *gb_make_pre_defined_container(GBCONTAINER *father, GBCONTAINER *gbd, long index_pos, GBQUARK keyq); -
trunk/PERL_SCRIPTS/test/Makefile
r8318 r8319 12 12 13 13 help: 14 test test all perl scripts for syntax14 @echo "test tests all perl scripts for syntax" 15 15 16 16 test: test.stamp -
trunk/SOURCE_TOOLS/deadcode.pl
r8308 r8319 11 11 ); 12 12 13 my $reg_file_exclude = qr/\/(GDE|EISPACK|READSEQ )\//;13 my $reg_file_exclude = qr/\/(GDE|EISPACK|READSEQ|PERL2ARB)\//; 14 14 15 15
