1.1 --- a/tools/installer/InstallerUtil.cpp Fri Mar 28 06:21:34 2008 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,231 +0,0 @@
1.4 -#include "InstallerUtil.h"
1.5 -#include "InstallerMain.h"
1.6 -#include <stdio.h>
1.7 -#include <windows.h>
1.8 -
1.9 -int tstrcasecmp(const TCHAR *str1, const TCHAR *str2)
1.10 -{
1.11 -#if defined _UNICODE
1.12 - return _wcsicmp(str1, str2);
1.13 -#else
1.14 - return _stricmp(str1, str2);
1.15 -#endif
1.16 -}
1.17 -
1.18 -size_t AnsiToUnicode(const char *str, wchar_t *buffer, size_t maxchars)
1.19 -{
1.20 - if (maxchars < 1)
1.21 - {
1.22 - return 0;
1.23 - }
1.24 -
1.25 - size_t total =
1.26 - (size_t)MultiByteToWideChar(CP_UTF8,
1.27 - 0,
1.28 - str,
1.29 - -1,
1.30 - buffer,
1.31 - (int)maxchars);
1.32 -
1.33 - return total;
1.34 -}
1.35 -
1.36 -bool IsWhiteSpaceA(const char *stream)
1.37 -{
1.38 - char c = *stream;
1.39 - if (c & (1<<7))
1.40 - {
1.41 - return false;
1.42 - }
1.43 - else
1.44 - {
1.45 - return isspace(c) != 0;
1.46 - }
1.47 -}
1.48 -
1.49 -int BreakStringA(const char *str, char *out, size_t maxchars)
1.50 -{
1.51 - const char *inptr = str;
1.52 - while (*inptr != '\0' && IsWhiteSpaceA(inptr))
1.53 - {
1.54 - inptr++;
1.55 - }
1.56 -
1.57 - if (*inptr == '\0')
1.58 - {
1.59 - if (maxchars)
1.60 - {
1.61 - *out = '\0';
1.62 - }
1.63 - return -1;
1.64 - }
1.65 -
1.66 - const char *start, *end = NULL;
1.67 -
1.68 - bool quoted = (*inptr == '"');
1.69 - if (quoted)
1.70 - {
1.71 - inptr++;
1.72 - start = inptr;
1.73 - /* Read input until we reach a quote. */
1.74 - while (*inptr != '\0' && *inptr != '"')
1.75 - {
1.76 - /* Update the end point, increment the stream. */
1.77 - end = inptr++;
1.78 - }
1.79 - /* Read one more token if we reached an end quote */
1.80 - if (*inptr == '"')
1.81 - {
1.82 - inptr++;
1.83 - }
1.84 - }
1.85 - else
1.86 - {
1.87 - start = inptr;
1.88 - /* Read input until we reach a space */
1.89 - while (*inptr != '\0' && !IsWhiteSpaceA(inptr))
1.90 - {
1.91 - /* Update the end point, increment the stream. */
1.92 - end = inptr++;
1.93 - }
1.94 - }
1.95 -
1.96 - /* Copy the string we found, if necessary */
1.97 - if (end == NULL)
1.98 - {
1.99 - if (maxchars)
1.100 - {
1.101 - *out = '\0';
1.102 - }
1.103 - }
1.104 - else if (maxchars)
1.105 - {
1.106 - char *outptr = out;
1.107 - maxchars--;
1.108 - for (const char *ptr=start;
1.109 - (ptr <= end) && ((unsigned)(outptr - out) < (maxchars));
1.110 - ptr++, outptr++)
1.111 - {
1.112 - *outptr = *ptr;
1.113 - }
1.114 - *outptr = '\0';
1.115 - }
1.116 -
1.117 - /* Consume more of the string until we reach non-whitespace */
1.118 - while (*inptr != '\0' && IsWhiteSpaceA(inptr))
1.119 - {
1.120 - inptr++;
1.121 - }
1.122 -
1.123 - return (int)(inptr - str);
1.124 -}
1.125 -
1.126 -size_t UTIL_Format(TCHAR *buffer, size_t count, const TCHAR *fmt, ...)
1.127 -{
1.128 - va_list ap;
1.129 - size_t len;
1.130 -
1.131 - va_start(ap, fmt);
1.132 - len = UTIL_FormatArgs(buffer, count, fmt, ap);
1.133 - va_end(ap);
1.134 -
1.135 - if (len >= count)
1.136 - {
1.137 - len = count - 1;
1.138 - buffer[len] = '\0';
1.139 - }
1.140 -
1.141 - return len;
1.142 -}
1.143 -
1.144 -size_t UTIL_FormatArgs(TCHAR *buffer, size_t count, const TCHAR *fmt, va_list ap)
1.145 -{
1.146 - size_t len = _vsntprintf(buffer, count, fmt, ap);
1.147 -
1.148 - if (len >= count)
1.149 - {
1.150 - len = count - 1;
1.151 - buffer[len] = '\0';
1.152 - }
1.153 -
1.154 - return len;
1.155 -}
1.156 -
1.157 -size_t UTIL_PathFormat(TCHAR *buffer, size_t count, const TCHAR *fmt, ...)
1.158 -{
1.159 - va_list ap;
1.160 - size_t len;
1.161 -
1.162 - va_start(ap, fmt);
1.163 - len = UTIL_FormatArgs(buffer, count, fmt, ap);
1.164 - va_end(ap);
1.165 -
1.166 - for (size_t i = 0; i < len; i++)
1.167 - {
1.168 - if (buffer[i] == '/')
1.169 - {
1.170 - buffer[i] = '\\';
1.171 - }
1.172 - }
1.173 -
1.174 - return len;
1.175 -}
1.176 -
1.177 -const TCHAR *GetFileFromPath(const TCHAR *path)
1.178 -{
1.179 - size_t len = _tcslen(path);
1.180 -
1.181 - for (size_t i = 0;
1.182 - i >= 0 && i < len - 1;
1.183 - i--)
1.184 - {
1.185 - if (path[i] == '\\' || path[i] == '/')
1.186 - {
1.187 - return &path[i];
1.188 - }
1.189 - }
1.190 -
1.191 - return NULL;
1.192 -}
1.193 -
1.194 -void GenerateErrorMessage(DWORD err, TCHAR *buffer, size_t maxchars)
1.195 -{
1.196 - if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
1.197 - NULL,
1.198 - err,
1.199 - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
1.200 - buffer,
1.201 - (DWORD)maxchars,
1.202 - NULL) == 0)
1.203 - {
1.204 - UTIL_Format(buffer, maxchars, _T("Unknown error"));
1.205 - }
1.206 -}
1.207 -
1.208 -INT_PTR AskToExit(HWND hWnd)
1.209 -{
1.210 - TCHAR verify_exit[100];
1.211 -
1.212 - if (LoadString(g_hInstance,
1.213 - IDS_VERIFY_EXIT,
1.214 - verify_exit,
1.215 - sizeof(verify_exit) / sizeof(TCHAR)
1.216 - ) == 0)
1.217 - {
1.218 - return (INT_PTR)FALSE;
1.219 - }
1.220 -
1.221 - int val = MessageBox(
1.222 - hWnd,
1.223 - _T("Are you sure you want to exit?"),
1.224 - _T("SourceMod Installer"),
1.225 - MB_YESNO|MB_ICONQUESTION);
1.226 -
1.227 - if (val == 0 || val == IDYES)
1.228 - {
1.229 - EndDialog(hWnd, NULL);
1.230 - return (INT_PTR)TRUE;
1.231 - }
1.232 -
1.233 - return (INT_PTR)FALSE;
1.234 -}