Changeset 414 for trunk/src/kernel32/profile.cpp
- Timestamp:
- Aug 4, 1999, 4:40:33 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/profile.cpp
r408 r414 1 /* $Id: profile.cpp,v 1. 5 1999-08-04 00:44:33phaller Exp $ */1 /* $Id: profile.cpp,v 1.6 1999-08-04 14:37:52 phaller Exp $ */ 2 2 3 3 /* … … 71 71 BOOL changed; 72 72 PROFILESECTION *section; 73 char *dos_name;74 char *unix_name;75 73 char *filename; 76 74 time_t mtime; … … 394 392 static BOOL PROFILE_FlushFile(void) 395 393 { 396 char *p, buffer[MAX_PATHNAME_LEN];397 const char *unix_name;398 394 FILE *file = NULL; 399 395 struct stat buf; … … 405 401 } 406 402 407 if (!CurProfile->changed || !CurProfile->dos_name) return TRUE; 408 if (!(unix_name = CurProfile->unix_name) || !(file = fopen(unix_name, "w"))) 409 { 410 /* Try to create it in $HOME/.wine */ 411 /* FIXME: this will need a more general solution */ 412 if ((p = getenv( "HOME" )) != NULL) 413 { 414 strcpy( buffer, p ); 415 strcat( buffer, "/.wine/" ); 416 p = buffer + strlen(buffer); 417 strcpy( p, strrchr( CurProfile->dos_name, '\\' ) + 1 ); 418 CharLowerA( p ); 419 file = fopen( buffer, "w" ); 420 unix_name = buffer; 421 } 422 } 423 403 // not changed, return immediately 404 if (!CurProfile->changed) 405 return TRUE; 406 407 // try to open file 408 file = fopen(CurProfile->filename, "w"); 424 409 if (!file) 425 410 { 426 dprintf(("Kernel32:Profile:could not save profile file %s\n", CurProfile-> dos_name));411 dprintf(("Kernel32:Profile:could not save profile file %s\n", CurProfile->filename)); 427 412 return FALSE; 428 413 } 429 414 430 dprintf(("Kernel32:Profile:Saving '%s' into '%s'\n", CurProfile->dos_name, unix_name ));415 dprintf(("Kernel32:Profile:Saving %s\n", CurProfile->filename )); 431 416 PROFILE_Save( file, CurProfile->section ); 432 417 fclose( file ); 433 418 CurProfile->changed = FALSE; 434 if(!stat( unix_name,&buf))419 if(!stat(CurProfile->filename,&buf)) 435 420 CurProfile->mtime=buf.st_mtime; 436 421 return TRUE; … … 447 432 PROFILE_FlushFile(); 448 433 PROFILE_Free( CurProfile->section ); 449 if (CurProfile->dos_name) HeapFree( SystemHeap, 0, CurProfile->dos_name );450 if (CurProfile->unix_name) HeapFree( SystemHeap, 0, CurProfile->unix_name );451 434 if (CurProfile->filename) HeapFree( SystemHeap, 0, CurProfile->filename ); 452 435 CurProfile->changed = FALSE; 453 436 CurProfile->section = NULL; 454 CurProfile->dos_name = NULL;455 CurProfile->unix_name = NULL;456 437 CurProfile->filename = NULL; 457 438 CurProfile->mtime = 0; … … 467 448 { 468 449 char buffer[MAX_PATHNAME_LEN]; 469 char *newdos_name, *p;470 450 FILE *file = NULL; 471 451 int i,j; … … 481 461 MRUProfile[i]->changed=FALSE; 482 462 MRUProfile[i]->section=NULL; 483 MRUProfile[i]->dos_name=NULL;484 MRUProfile[i]->unix_name=NULL;485 463 MRUProfile[i]->filename=NULL; 486 464 MRUProfile[i]->mtime=0; … … 510 488 CurProfile=tempProfile; 511 489 } 512 if(!stat(CurProfile-> unix_name,&buf) && CurProfile->mtime==buf.st_mtime)490 if(!stat(CurProfile->filename,&buf) && CurProfile->mtime==buf.st_mtime) 513 491 dprintf(("Kernel32:Profile:(%s): already opened (mru=%d)\n", 514 492 filename, i )); … … 534 512 if(CurProfile->filename) PROFILE_ReleaseFile(); 535 513 536 newdos_name = HEAP_strdupA( SystemHeap, 0, filename );537 CurProfile->dos_name = newdos_name;538 514 CurProfile->filename = HEAP_strdupA( SystemHeap, 0, filename ); 539 515 540 /* Try to open the profile file, first in $HOME/.wine */ 541 542 /* FIXME: this will need a more general solution */ 543 if ((p = getenv( "HOME" )) != NULL) 544 { 545 strcpy( buffer, p ); 546 strcat( buffer, "/.wine/" ); 547 p = buffer + strlen(buffer); 548 strcpy( p, strrchr( newdos_name, '\\' ) + 1 ); 549 CharLowerA( p ); 550 if ((file = fopen( buffer, "r" ))) 551 { 552 dprintf(("Kernel32:Profile:(%s): found it in %s\n", 553 filename, buffer )); 554 CurProfile->unix_name = HEAP_strdupA( SystemHeap, 0, buffer ); 555 } 556 } 557 558 if (!file) 559 { 560 CurProfile->unix_name = HEAP_strdupA( SystemHeap, 0, 561 filename ); 562 if ((file = fopen( filename, "r" ))) 563 dprintf(("Kernel32:Profile:(%s): found it in %s\n", 564 filename, filename )); 565 } 566 516 file = fopen( filename, "r" ); 567 517 if (file) 568 518 { 519 dprintf(("Kernel32:Profile:(%s): found it in %s\n", 520 filename, filename )); 521 569 522 CurProfile->section = PROFILE_Load( file ); 570 523 fclose( file ); 571 if(!stat(CurProfile-> unix_name,&buf))524 if(!stat(CurProfile->filename,&buf)) 572 525 CurProfile->mtime=buf.st_mtime; 573 526 } … … 575 528 { 576 529 /* Does not exist yet, we will create it in PROFILE_FlushFile */ 577 dprintf(("Kernel32:Profile:profile file %s not found\n", newdos_name ));530 dprintf(("Kernel32:Profile:profile file %s not found\n", filename )); 578 531 } 579 532 return TRUE;
Note:
See TracChangeset
for help on using the changeset viewer.