Boston, MA 02111-1307, USA
*/
-// on UNIX platforms we need to define this so that video saving does not cause a SIGFSZ (file size) signal when a video clip exceeds 2GB
-#define _FILE_OFFSET_BITS 64
-
#include "quakedef.h"
#include <limits.h>
# define O_NONBLOCK 0
#endif
+// largefile support for Win32
+#ifdef WIN32
+# define lseek _lseeki64
+#endif
/*
FS_ChangeGameDirs
================
*/
-extern void Host_SaveConfig_f (void);
+extern void Host_SaveConfig (void);
extern void Host_LoadConfig_f (void);
qboolean FS_ChangeGameDirs(int numgamedirs, char gamedirs[][MAX_QPATH], qboolean complain, qboolean failmissing)
{
// halt demo playback to close the file
CL_Disconnect();
- Host_SaveConfig_f();
+ Host_SaveConfig();
fs_numgamedirs = numgamedirs;
for (i = 0;i < fs_numgamedirs;i++)
*/
void FS_Shutdown (void)
{
+ // close all pack files and such
+ // (hopefully there aren't any other open files, but they'll be cleaned up
+ // by the OS anyway)
+ FS_ClearSearchPath();
Mem_FreePool (&fs_mempool);
}
if (file->buff_ind < file->buff_len)
{
count = file->buff_len - file->buff_ind;
+ count = ((fs_offset_t)buffersize > count) ? count : (fs_offset_t)buffersize;
+ done += count;
+ memcpy (buffer, &file->buff[file->buff_ind], count);
+ file->buff_ind += count;
- done += ((fs_offset_t)buffersize > count) ? count : (fs_offset_t)buffersize;
- memcpy (buffer, &file->buff[file->buff_ind], done);
- file->buff_ind += done;
-
- buffersize -= done;
+ buffersize -= count;
if (buffersize == 0)
return done;
}
*/
int FS_Getc (qfile_t* file)
{
- char c;
+ unsigned char c;
if (FS_Read (file, &c, 1) != 1)
return EOF;
default:
return -1;
}
- if (offset < 0 || offset > (long) file->real_length)
+ if (offset < 0 || offset > file->real_length)
return -1;
// If we have the data in our read buffer, we don't need to actually seek