Commit 362862e486092553b574ae6e21bff42f0529cf91
1 parent
67471cd9
Exists in
master
and in
5 other branches
Corrigindo deteccao automatica do diretorio de dados em linux
Showing
1 changed file
with
2 additions
and
78 deletions
Show diff stats
src/gtk/common/config.c
| @@ -522,83 +522,6 @@ gchar * build_data_filename(const gchar *first_element, ...) | @@ -522,83 +522,6 @@ gchar * build_data_filename(const gchar *first_element, ...) | ||
| 522 | } | 522 | } |
| 523 | #endif // WIN_REGISTRY_ENABLED | 523 | #endif // WIN_REGISTRY_ENABLED |
| 524 | 524 | ||
| 525 | -/* | ||
| 526 | -#if defined( WIN_REGISTRY_ENABLED ) | ||
| 527 | - | ||
| 528 | - gchar *reg_datadir = g_strconcat("SOFTWARE\\",g_get_application_name(),"\\datadir",NULL); | ||
| 529 | - | ||
| 530 | - HKEY hKey = 0; | ||
| 531 | - LONG rc = 0; | ||
| 532 | - | ||
| 533 | - // Note: This could be needed: http://support.microsoft.com/kb/556009 | ||
| 534 | - // http://msdn.microsoft.com/en-us/library/windows/desktop/aa384129(v=vs.85).aspx | ||
| 535 | - | ||
| 536 | - rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE,reg_datadir,0,KEY_QUERY_VALUE|KEY_WOW64_64KEY,&hKey); | ||
| 537 | - SetLastError(rc); | ||
| 538 | - | ||
| 539 | - if(rc == ERROR_SUCCESS) | ||
| 540 | - { | ||
| 541 | - char data[4096]; | ||
| 542 | - unsigned long datalen = sizeof(data); // data field length(in), data returned length(out) | ||
| 543 | - unsigned long datatype; // #defined in winnt.h (predefined types 0-11) | ||
| 544 | - | ||
| 545 | - if(RegQueryValueExA(hKey,NULL,NULL,&datatype,(LPBYTE) data,&datalen) == ERROR_SUCCESS) | ||
| 546 | - { | ||
| 547 | - result = g_string_new(g_strchomp(data)); | ||
| 548 | - } | ||
| 549 | - else | ||
| 550 | - { | ||
| 551 | - gchar *msg = get_last_error_msg(); | ||
| 552 | - g_warning("Error \"%s\" getting value from HKLM\\%s",msg,reg_datadir); | ||
| 553 | - g_free(msg); | ||
| 554 | - result = g_string_new("."); | ||
| 555 | - } | ||
| 556 | - RegCloseKey(hKey); | ||
| 557 | - } | ||
| 558 | - else | ||
| 559 | - { | ||
| 560 | - static const gchar *datadir = NULL; | ||
| 561 | - | ||
| 562 | - gchar *msg = get_last_error_msg(); | ||
| 563 | - g_warning("Error \"%s\" opening HKLM\\%s, searching system config dirs",msg,reg_datadir); | ||
| 564 | - g_free(msg); | ||
| 565 | - | ||
| 566 | - if(!datadir) | ||
| 567 | - { | ||
| 568 | - const gchar * const * dir = g_get_system_config_dirs(); | ||
| 569 | - int f; | ||
| 570 | - | ||
| 571 | - for(f=0;dir[f] && !datadir;f++) | ||
| 572 | - { | ||
| 573 | - gchar *name = g_build_filename(dir[f],PACKAGE_NAME,NULL); | ||
| 574 | - | ||
| 575 | - trace("Searching for \"%s\"",name); | ||
| 576 | - | ||
| 577 | - if(g_file_test(name,G_FILE_TEST_IS_DIR)) | ||
| 578 | - datadir = name; | ||
| 579 | - else | ||
| 580 | - g_free(name); | ||
| 581 | - } | ||
| 582 | - | ||
| 583 | - if(!datadir) | ||
| 584 | - { | ||
| 585 | - datadir = g_get_current_dir(); | ||
| 586 | - g_warning("Unable to find application datadir, using %s",datadir); | ||
| 587 | - } | ||
| 588 | - | ||
| 589 | - } | ||
| 590 | - | ||
| 591 | - result = g_string_new(datadir); | ||
| 592 | - | ||
| 593 | - } | ||
| 594 | - | ||
| 595 | -#elif defined(APPDATA) && !defined(WIN32) | ||
| 596 | - | ||
| 597 | - result = g_string_new(APPDATA); | ||
| 598 | - | ||
| 599 | -#endif | ||
| 600 | - | ||
| 601 | -*/ | ||
| 602 | 525 | ||
| 603 | if(!result) | 526 | if(!result) |
| 604 | { | 527 | { |
| @@ -613,8 +536,9 @@ gchar * build_data_filename(const gchar *first_element, ...) | @@ -613,8 +536,9 @@ gchar * build_data_filename(const gchar *first_element, ...) | ||
| 613 | for(f=0;dir[f] && !datadir;f++) | 536 | for(f=0;dir[f] && !datadir;f++) |
| 614 | { | 537 | { |
| 615 | gchar *name = g_build_filename(dir[f],appname[p],NULL); | 538 | gchar *name = g_build_filename(dir[f],appname[p],NULL); |
| 539 | + trace("Searching for %s: %s",name,g_file_test(name,G_FILE_TEST_IS_DIR) ? "Ok" : "Not found"); | ||
| 616 | if(g_file_test(name,G_FILE_TEST_IS_DIR)) | 540 | if(g_file_test(name,G_FILE_TEST_IS_DIR)) |
| 617 | - datadir = name; | 541 | + result = g_string_new(datadir = name); |
| 618 | else | 542 | else |
| 619 | g_free(name); | 543 | g_free(name); |
| 620 | } | 544 | } |