mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-25 21:31:37 +00:00
fixes.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4525 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
8640500899
commit
05644d07b4
5 changed files with 88 additions and 72 deletions
|
@ -676,73 +676,8 @@ FILE IO
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
wchar_t *widen(wchar_t *out, size_t outlen, const char *utf8)
|
wchar_t *widen(wchar_t *out, size_t outlen, const char *utf8);
|
||||||
{
|
char *narrowen(char *out, size_t outlen, wchar_t *wide);
|
||||||
wchar_t *ret = out;
|
|
||||||
//utf-8 to utf-16, not ucs-2.
|
|
||||||
unsigned int codepoint;
|
|
||||||
int error;
|
|
||||||
if (!outlen)
|
|
||||||
return L"";
|
|
||||||
outlen /= sizeof(wchar_t);
|
|
||||||
outlen--;
|
|
||||||
while (*utf8)
|
|
||||||
{
|
|
||||||
codepoint = utf8_decode(&error, utf8, (void*)&utf8);
|
|
||||||
if (error)
|
|
||||||
codepoint = 0xFFFDu;
|
|
||||||
if (codepoint > 0xffff)
|
|
||||||
{
|
|
||||||
if (outlen < 2)
|
|
||||||
break;
|
|
||||||
outlen -= 2;
|
|
||||||
codepoint -= 0x10000u;
|
|
||||||
*out++ = 0xD800 | (codepoint>>10);
|
|
||||||
*out++ = 0xDC00 | (codepoint&0x3ff);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (outlen < 1)
|
|
||||||
break;
|
|
||||||
outlen -= 1;
|
|
||||||
*out++ = codepoint;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*out = 0;
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
char *narrowen(char *out, size_t outlen, wchar_t *wide)
|
|
||||||
{
|
|
||||||
char *ret = out;
|
|
||||||
int bytes;
|
|
||||||
unsigned int codepoint;
|
|
||||||
if (!outlen)
|
|
||||||
return "";
|
|
||||||
outlen--;
|
|
||||||
//utf-8 to utf-16, not ucs-2.
|
|
||||||
while (*wide)
|
|
||||||
{
|
|
||||||
codepoint = *wide++;
|
|
||||||
if (codepoint >= 0xD800u && codepoint <= 0xDBFFu)
|
|
||||||
{ //handle utf-16 surrogates
|
|
||||||
if (*wide >= 0xDC00u && *wide <= 0xDFFFu)
|
|
||||||
{
|
|
||||||
codepoint = (codepoint&0x3ff)<<10;
|
|
||||||
codepoint |= *wide++ & 0x3ff;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
codepoint = 0xFFFDu;
|
|
||||||
}
|
|
||||||
bytes = utf8_encode(out, codepoint, outlen);
|
|
||||||
if (bytes <= 0)
|
|
||||||
break;
|
|
||||||
out += bytes;
|
|
||||||
outlen -= bytes;
|
|
||||||
}
|
|
||||||
*out = 0;
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Sys_mkdir (char *path)
|
void Sys_mkdir (char *path)
|
||||||
{
|
{
|
||||||
|
@ -2733,7 +2668,14 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin
|
||||||
setjmp (restart_jmpbuf);
|
setjmp (restart_jmpbuf);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
GetModuleFileName(NULL, bindir, sizeof(bindir)-1);
|
if (WinNT)
|
||||||
|
{
|
||||||
|
wchar_t widebindir[1024];
|
||||||
|
GetModuleFileNameW(NULL, widebindir, sizeof(widebindir)/sizeof(widebindir[0])-1);
|
||||||
|
narrowen(bindir, sizeof(bindir)-1, widebindir);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
GetModuleFileNameA(NULL, bindir, sizeof(bindir)-1);
|
||||||
Q_strncpyz(exename, bindir, sizeof(exename));
|
Q_strncpyz(exename, bindir, sizeof(exename));
|
||||||
*COM_SkipPath(bindir) = 0;
|
*COM_SkipPath(bindir) = 0;
|
||||||
parms.argv = (const char **)argv;
|
parms.argv = (const char **)argv;
|
||||||
|
|
|
@ -28,8 +28,73 @@ typedef struct {
|
||||||
unsigned int offset;
|
unsigned int offset;
|
||||||
} vfsw32file_t;
|
} vfsw32file_t;
|
||||||
|
|
||||||
wchar_t *widen(wchar_t *out, size_t outlen, const char *utf8);
|
wchar_t *widen(wchar_t *out, size_t outlen, const char *utf8)
|
||||||
char *narrowen(char *out, size_t outlen, const wchar_t *wide);
|
{
|
||||||
|
wchar_t *ret = out;
|
||||||
|
//utf-8 to utf-16, not ucs-2.
|
||||||
|
unsigned int codepoint;
|
||||||
|
int error;
|
||||||
|
if (!outlen)
|
||||||
|
return L"";
|
||||||
|
outlen /= sizeof(wchar_t);
|
||||||
|
outlen--;
|
||||||
|
while (*utf8)
|
||||||
|
{
|
||||||
|
codepoint = utf8_decode(&error, utf8, (void*)&utf8);
|
||||||
|
if (error)
|
||||||
|
codepoint = 0xFFFDu;
|
||||||
|
if (codepoint > 0xffff)
|
||||||
|
{
|
||||||
|
if (outlen < 2)
|
||||||
|
break;
|
||||||
|
outlen -= 2;
|
||||||
|
codepoint -= 0x10000u;
|
||||||
|
*out++ = 0xD800 | (codepoint>>10);
|
||||||
|
*out++ = 0xDC00 | (codepoint&0x3ff);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (outlen < 1)
|
||||||
|
break;
|
||||||
|
outlen -= 1;
|
||||||
|
*out++ = codepoint;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*out = 0;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *narrowen(char *out, size_t outlen, wchar_t *wide)
|
||||||
|
{
|
||||||
|
char *ret = out;
|
||||||
|
int bytes;
|
||||||
|
unsigned int codepoint;
|
||||||
|
if (!outlen)
|
||||||
|
return "";
|
||||||
|
outlen--;
|
||||||
|
//utf-8 to utf-16, not ucs-2.
|
||||||
|
while (*wide)
|
||||||
|
{
|
||||||
|
codepoint = *wide++;
|
||||||
|
if (codepoint >= 0xD800u && codepoint <= 0xDBFFu)
|
||||||
|
{ //handle utf-16 surrogates
|
||||||
|
if (*wide >= 0xDC00u && *wide <= 0xDFFFu)
|
||||||
|
{
|
||||||
|
codepoint = (codepoint&0x3ff)<<10;
|
||||||
|
codepoint |= *wide++ & 0x3ff;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
codepoint = 0xFFFDu;
|
||||||
|
}
|
||||||
|
bytes = utf8_encode(out, codepoint, outlen);
|
||||||
|
if (bytes <= 0)
|
||||||
|
break;
|
||||||
|
out += bytes;
|
||||||
|
outlen -= bytes;
|
||||||
|
}
|
||||||
|
*out = 0;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int QDECL VFSW32_ReadBytes (struct vfsfile_s *file, void *buffer, int bytestoread)
|
static int QDECL VFSW32_ReadBytes (struct vfsfile_s *file, void *buffer, int bytestoread)
|
||||||
|
|
|
@ -3974,7 +3974,7 @@ void QCBUILTIN PF_break (pubprogfuncs_t *prinst, struct globalvars_s *pr_globals
|
||||||
//need to alter the client, or rewrite a bit of the server..
|
//need to alter the client, or rewrite a bit of the server..
|
||||||
|
|
||||||
if (pr_globals)
|
if (pr_globals)
|
||||||
Con_TPrintf(STL_BREAKSTATEMENT);
|
Con_Printf("Break Statement\n");
|
||||||
else if (developer.value!=2)
|
else if (developer.value!=2)
|
||||||
return; //non developers cann't step.
|
return; //non developers cann't step.
|
||||||
for(;;)
|
for(;;)
|
||||||
|
|
|
@ -18942,6 +18942,7 @@
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="GLDebug|Win32"
|
Name="GLDebug|Win32"
|
||||||
|
ExcludedFromBuild="true"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
@ -29651,6 +29652,14 @@
|
||||||
CompileAs="2"
|
CompileAs="2"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Debug Dedicated Server|Win32"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
UsePrecompiledHeader="0"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\common\net_ssl_winsspi.c"
|
RelativePath="..\common\net_ssl_winsspi.c"
|
||||||
|
|
|
@ -39,7 +39,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
static HANDLE hconsoleout;
|
static HANDLE hconsoleout;
|
||||||
|
|
||||||
|
|
||||||
|
qboolean WinNT; //if true, use utf-16 file paths. if false, hope that paths are in ascii.
|
||||||
|
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
|
|
Loading…
Reference in a new issue