| 1476 | //----------------------------------------------------------------------------- |
| 1477 | |
| 1478 | StringTableEntry osGetTemporaryDirectory() |
| 1479 | { |
| 1480 | TCHAR buf[ 1024 ]; |
| 1481 | const U32 bufSize = sizeof( buf ) / sizeof( buf[ 0 ] ); |
| 1482 | DWORD len = GetTempPath( sizeof( buf ) / sizeof( buf[ 0 ] ), buf ); |
| 1483 | |
| 1484 | TempAlloc< TCHAR > temp; |
| 1485 | TCHAR* buffer = buf; |
| 1486 | if( len > bufSize - 1 ) |
| 1487 | { |
| 1488 | temp = TempAlloc< TCHAR >( len + 1 ); |
| 1489 | buffer = temp; |
| 1490 | GetTempPath( len + 1, buffer ); |
| 1491 | } |
| 1492 | |
| 1493 | // Remove the trailing slash |
| 1494 | buffer[len-1] = 0; |
| 1495 | |
| 1496 | #ifdef UNICODE |
| 1497 | TempAlloc< char > dirBuffer( len * 3 + 1 ); |
| 1498 | char* dir = dirBuffer; |
| 1499 | convertUTF16toUTF8N( buffer, dir, dirBuffer.size ); |
| 1500 | #else |
| 1501 | char* dir = buf; |
| 1502 | #endif |
| 1503 | |
| 1504 | forwardslash(dir); |
| 1505 | return StringTable->insert(dir); |
| 1506 | } |
no test coverage detected