diff --git a/JALOG_CONV.dev b/JALOG_CONV.dev index 5dd4f1e..741e4fd 100644 --- a/JALOG_CONV.dev +++ b/JALOG_CONV.dev @@ -1,8 +1,8 @@ [Project] FileName=JALOG_CONV.dev Name=JALOG_CONV -UnitCount=1 -Type=1 +UnitCount=3 +Type=0 Ver=1 ObjFiles= Includes= @@ -10,15 +10,15 @@ Libs= PrivateResource=JALOG_CONV_private.rc ResourceIncludes= MakeIncludes= -Compiler=-D_GNU_SOURCE_@@_ +Compiler= CppCompiler= -Linker=-D_GNU_SOURCE_@@_ -IsCpp=0 -Icon=JALOG_CONV.ico +Linker= +IsCpp=1 +Icon= ExeOutput= ObjectOutput= -OverrideOutput=1 -OverrideOutputName=JALOG_CONV.EXE +OverrideOutput=0 +OverrideOutputName=JALOG_CONV.exe HostApplication= Folders= CommandLine= @@ -30,8 +30,8 @@ CompilerSet=0 CompilerSettings=0000000000000000000000 [Unit1] -FileName=main.c -CompileCpp=0 +FileName=main.cpp +CompileCpp=1 Folder= Compile=1 Link=1 @@ -40,20 +40,39 @@ OverrideBuildCmd=0 BuildCmd= [VersionInfo] -Major=1 -Minor=1 +Major=0 +Minor=2 Release=0 Build=89 LanguageID=1033 CharsetID=1252 CompanyName=Steven Mattera -FileVersion=1.0 +FileVersion=2.0 FileDescription= InternalName= LegalCopyright=Copyright 2010 Steven Mattera. All Rights Reserved. LegalTrademarks= OriginalFilename=JALOG_CONV.EXE ProductName=Jedi Academy Server Log Converter -ProductVersion=1.0 -AutoIncBuildNr=1 +ProductVersion=2.0 +AutoIncBuildNr=0 + +[Unit2] +FileName=resource.h +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit3] +FileName=resource.rc +Folder=JALOG_CONV +Compile=1 +Link=0 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= diff --git a/JALOG_CONV_private.h b/JALOG_CONV_private.h index cbf1bf1..7862f2f 100644 --- a/JALOG_CONV_private.h +++ b/JALOG_CONV_private.h @@ -5,19 +5,19 @@ #define JALOG_CONV_PRIVATE_H /* VERSION DEFINITIONS */ -#define VER_STRING "1.1.0.89" -#define VER_MAJOR 1 -#define VER_MINOR 1 +#define VER_STRING "0.2.0.89" +#define VER_MAJOR 0 +#define VER_MINOR 2 #define VER_RELEASE 0 #define VER_BUILD 89 #define COMPANY_NAME "Steven Mattera" -#define FILE_VERSION "1.0" +#define FILE_VERSION "2.0" #define FILE_DESCRIPTION "" #define INTERNAL_NAME "" #define LEGAL_COPYRIGHT "Copyright 2010 Steven Mattera. All Rights Reserved." #define LEGAL_TRADEMARKS "" #define ORIGINAL_FILENAME "JALOG_CONV.EXE" #define PRODUCT_NAME "Jedi Academy Server Log Converter" -#define PRODUCT_VERSION "1.0" +#define PRODUCT_VERSION "2.0" #endif /*JALOG_CONV_PRIVATE_H*/ diff --git a/JALOG_CONV_private.rc b/JALOG_CONV_private.rc index c1c8080..2b03aa3 100644 --- a/JALOG_CONV_private.rc +++ b/JALOG_CONV_private.rc @@ -3,15 +3,14 @@ #include // include for version info constants - -A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "JALOG_CONV.ico" +#include "resource.rc" // // TO CHANGE VERSION INFORMATION, EDIT PROJECT OPTIONS... // 1 VERSIONINFO -FILEVERSION 1,1,0,89 -PRODUCTVERSION 1,1,0,89 +FILEVERSION 0,2,0,89 +PRODUCTVERSION 0,2,0,89 FILETYPE VFT_APP { BLOCK "StringFileInfo" @@ -19,14 +18,14 @@ FILETYPE VFT_APP BLOCK "040904E4" { VALUE "CompanyName", "Steven Mattera" - VALUE "FileVersion", "1.0" + VALUE "FileVersion", "2.0" VALUE "FileDescription", "" VALUE "InternalName", "" VALUE "LegalCopyright", "Copyright 2010 Steven Mattera. All Rights Reserved." VALUE "LegalTrademarks", "" VALUE "OriginalFilename", "JALOG_CONV.EXE" VALUE "ProductName", "Jedi Academy Server Log Converter" - VALUE "ProductVersion", "1.0" + VALUE "ProductVersion", "2.0" } } BLOCK "VarFileInfo" diff --git a/JALOG_CONV_private.res b/JALOG_CONV_private.res deleted file mode 100644 index ed15ccf..0000000 Binary files a/JALOG_CONV_private.res and /dev/null differ diff --git a/Makefile.win b/Makefile.win index 13b6d85..2118961 100644 --- a/Makefile.win +++ b/Makefile.win @@ -7,27 +7,27 @@ WINDRES = windres.exe RES = JALOG_CONV_private.res OBJ = main.o $(RES) LINKOBJ = main.o $(RES) -LIBS = -L"C:/Dev-Cpp/lib" -D_GNU_SOURCE +LIBS = -L"C:/Dev-Cpp/lib" -mwindows INCS = -I"C:/Dev-Cpp/include" CXXINCS = -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include" -BIN = JALOG_CONV.EXE +BIN = JALOG_CONV.exe CXXFLAGS = $(CXXINCS) -CFLAGS = $(INCS) -D_GNU_SOURCE +CFLAGS = $(INCS) RM = rm -f .PHONY: all all-before all-after clean clean-custom -all: all-before JALOG_CONV.EXE all-after +all: all-before JALOG_CONV.exe all-after clean: clean-custom ${RM} $(OBJ) $(BIN) $(BIN): $(OBJ) - $(CC) $(LINKOBJ) -o "JALOG_CONV.EXE" $(LIBS) + $(CPP) $(LINKOBJ) -o "JALOG_CONV.exe" $(LIBS) -main.o: main.c - $(CC) -c main.c -o main.o $(CFLAGS) +main.o: main.cpp + $(CPP) -c main.cpp -o main.o $(CXXFLAGS) -JALOG_CONV_private.res: JALOG_CONV_private.rc +JALOG_CONV_private.res: JALOG_CONV_private.rc resource.rc $(WINDRES) -i JALOG_CONV_private.rc --input-format=rc -o JALOG_CONV_private.res -O coff diff --git a/main.c b/main.c deleted file mode 100644 index 176b464..0000000 --- a/main.c +++ /dev/null @@ -1,216 +0,0 @@ -// main.c -// Jedi Academy Server Log Converter - Version 1.1 -// -// Created By Steven Mattera on August 30th 2010. -// Copyright (c) 2010 Steven Mattera -// -// Jedi Academy Server Log Converter is free software; you can -// redistribute it and/or modify it under the terms of the GNU General -// Public License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// Jedi Academy Server Log Converter is distributed in the hope that it -// will be useful, but WITHOUT ANY WARRENTY; without even the implied -// warrenty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more deails. -// -// You should have received a copy of the GNU General Public License -// along with Jedi Academy Server Log Converter; if not, write to the Free -// Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 -// USA -// - -#include -#include -#include -#include -#include - -FILE * openLogFile(char *path); -FILE * openConvFile(char *argv[]); - -int main(int argc, char *argv[]) { - FILE * logFile; - FILE * convFile; - - printf("Jedi Academy Server Log Converter\n"); - printf("Copyright (c) 2010 Steven Mattera \n\n"); - printf("Jedi Academy Server Log Converter is free software; you can redistribute it\n"); - printf("and/or modify it under the terms of the GNU General Public License as published\n"); - printf("by the Free Software Foundation; either version 2 of the License, or (at your\n"); - printf("option) any later version.\n\n"); - printf("Jedi Academy Server Log Converter is distributed in the hope that it will be\n"); - printf("useful, but WITHOUT ANY WARRENTY; without even the implied warrenty of \n"); - printf("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\n"); - printf("License for more deails.\n\n"); - printf("You should have received a copy of the GNU General Public License along with\n"); - printf("Jedi Academy Server Log Converter; if not, write to the Free Software\n"); - printf("Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n\n"); - - if(argc != 2) { - printf("Usage: JALOG_CONV.EXE \n"); - system("pause"); - - return -1; - } - - logFile = openLogFile(argv[1]); - if (logFile == NULL) return -1; - - convFile = openConvFile(argv); - if (convFile == NULL) return -1; - - fputs("", convFile); - - char * line; - char * lineProcessing; - char * convLine; - size_t currentPosition; - int color = 7; - - while(!feof(logFile)) { - line = (char *)malloc(sizeof(char)*512); - memset(line, '\0', sizeof(char)*512); - - fgets(line, 512, logFile); - if(color != 7) { - fputs("", convFile); - color = 7; - } - - int n; - for (n = 0; n < strlen(line); n++) { - if(line[n] == '^') { - switch (atoi(&line[n+1])) { - case 1: - if(color != 1) { - color = 1; - fputs("", convFile); - } - break; - case 2: - if(color != 2) { - color = 2; - fputs("", convFile); - } - break; - case 3: - if(color != 3) { - color = 3; - fputs("", convFile); - } - break; - case 4: - if(color != 4) { - color = 4; - fputs("", convFile); - } - break; - case 5: - if(color != 5) { - color = 5; - fputs("", convFile); - } - break; - case 6: - if(color != 6) { - color = 6; - fputs("", convFile); - } - break; - case 7: - if(color != 7) { - color = 7; - fputs("", convFile); - } - break; - case 0: - if(color != 8) { - color = 8; - fputs("", convFile); - } - break; - default: - fputc('^', convFile); - fputc(line[n+1], convFile); - break; - } - n++; - } - else if (line[n] == ':' && color != 7) { - fputs("", convFile); - fputc(':', convFile); - } - else if (line[n] == '\\' && color != 7) { - fputs("", convFile); - fputc('\\', convFile); - } - else if (line[n] == ' ' && line[n+1] == 'k' && line[n+2] == 'i' && line[n+3] == 'l' && line[n+4] == 'l' && line[n+5] == 'e' && line[n+6] == 'd' && line[n+7] == ' ' && color != 7) { - fputs("", convFile); - fputc(' ', convFile); - } - else if (line[n] == ' ' && line[n+1] == 'b' && line[n+2] == 'y' && line[n+3] == ' ' && color != 7) { - fputs("", convFile); - fputc(' ', convFile); - } - else if (line[n] == '<') { - fputs("<", convFile); - } - else if (line[n] == '>') { - fputs(">", convFile); - } - else if (line[n] == '&') { - fputs("&", convFile); - } - else if (line[n] != '\n' || line[n] != '\r') { - fputc(line[n], convFile); - } - } - - fputs("
", convFile); - - free(line); - } - - fputs("", convFile); - - fclose(convFile); - fclose(logFile); - - return 0; -} - -FILE * openLogFile(char *path) { - FILE * logFile = fopen(path, "r"); - - if(logFile == NULL) { - printf("Error: Opening reading stream.\n\n"); - system("pause"); - - return NULL; - } - - return logFile; -} - -FILE * openConvFile(char *argv[]) { - char abs_exe_path[MAX_PATH]; - - char * pch = strrchr(argv[0],'\\'); - strncpy(abs_exe_path, argv[0], pch-argv[0]+1); - free(pch); - - char convPath[PATH_MAX]; - sprintf(convPath, "%sJALOG_CONV.HTML", abs_exe_path); - FILE * convFile = fopen(convPath, "w+"); - - - if(convFile == NULL) { - printf("Error: Opening writing stream.\n\n"); - system("pause"); - - return NULL; - } - - return convFile; -} diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..97a2b03 --- /dev/null +++ b/main.cpp @@ -0,0 +1,140 @@ +#include +#include "resource.h" + +enum { + ID_LOADEDIT = 1, + ID_LOADBUTTON, + ID_SAVEEDIT, + ID_SAVEBUTTON, + ID_CONVERTBUTTON +}; + +const char g_szClassName[] = "defaultWindow"; + +LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); +int WINAPI showError(LPCTSTR lpText); + +int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { + WNDCLASSEX wc; + MSG Msg; + HWND hwnd; + + wc.cbSize = sizeof(WNDCLASSEX); + wc.style = 0; + wc.lpfnWndProc = WndProc; + wc.cbClsExtra = 0; + wc.cbWndExtra = 0; + wc.hInstance = hInstance; + wc.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MYICON)); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hbrBackground = GetSysColorBrush(COLOR_3DFACE); + wc.lpszMenuName = NULL; + wc.lpszClassName = g_szClassName; + wc.hIconSm = (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MYICON), IMAGE_ICON, 16, 16, 0); + + if (!RegisterClassEx(&wc)) { + showError("Window Registration Failed!"); + return 0; + } + + hwnd = CreateWindowEx(0, g_szClassName, "Jedi Academy Server Log Converter", WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX , (GetSystemMetrics(SM_CXSCREEN) - 500)/2, (GetSystemMetrics(SM_CYSCREEN) - 72)/2, 500, 100, NULL, NULL, hInstance, NULL); + + if (hwnd == NULL) { + showError("Window Creation Failed!"); + return 0; + } + + ShowWindow(hwnd, nCmdShow); + UpdateWindow(hwnd); + + while(GetMessage(&Msg, NULL, 0, 0) > 0) { + TranslateMessage(&Msg); + DispatchMessage(&Msg); + } + + return Msg.wParam; +} + +LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { + char szFileName[MAX_PATH] = ""; + OPENFILENAME ofn; + + switch(msg) { + case WM_CREATE: + HFONT hfDefault; + HWND hLoadEdit; + HWND hLoadButton; + HWND hSaveEdit; + HWND hSaveButton; + HWND hConvertButton; + + hLoadEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD|WS_VISIBLE|ES_AUTOHSCROLL, 10, 10, 300, 21, hwnd, (HMENU)ID_LOADEDIT, GetModuleHandle(NULL), NULL); + hLoadButton = CreateWindowEx(0, "BUTTON", "Input", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 320, 10, 70, 21, hwnd, (HMENU)ID_LOADBUTTON, GetModuleHandle(NULL), NULL); + hSaveEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD|WS_VISIBLE|ES_AUTOHSCROLL, 10, 41, 300, 21, hwnd, (HMENU)ID_SAVEEDIT, GetModuleHandle(NULL), NULL); + hSaveButton = CreateWindowEx(0, "BUTTON", "Output", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 320, 41, 70, 21, hwnd, (HMENU)ID_SAVEBUTTON, GetModuleHandle(NULL), NULL); + hConvertButton = CreateWindowEx(0, "BUTTON", "Convert", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 400, 10, 80, 52, hwnd, (HMENU)ID_CONVERTBUTTON, GetModuleHandle(NULL), NULL); + + hfDefault = (HFONT)GetStockObject(DEFAULT_GUI_FONT); + SendMessage(hLoadEdit, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); + SendMessage(hLoadButton, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); + SendMessage(hSaveEdit, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); + SendMessage(hSaveButton, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); + SendMessage(hConvertButton, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); + break; + case WM_CLOSE: + DestroyWindow(hwnd); + break; + case WM_DESTROY: + PostQuitMessage(0); + break; + case WM_COMMAND: + + + switch(wParam) { + case ID_LOADBUTTON: + ZeroMemory(&ofn, sizeof(ofn)); + + ofn.lStructSize = sizeof(ofn); + ofn.hwndOwner = hwnd; + ofn.lpstrFilter = "Log Files (*.log)\0*.log\0Log Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0"; + ofn.lpstrFile = szFileName; + ofn.nMaxFile = MAX_PATH; + ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; + ofn.lpstrDefExt = "log"; + + if(GetOpenFileName(&ofn)) { + HWND hLoadEdit = GetDlgItem(hwnd, ID_LOADEDIT); + SetWindowText(hLoadEdit, szFileName); + } + break; + case ID_SAVEBUTTON: + ZeroMemory(&ofn, sizeof(ofn)); + + ofn.lStructSize = sizeof(ofn); + ofn.hwndOwner = hwnd; + ofn.lpstrFilter = "HTML Files (*.html)\0*.html\0RTF Files (*.rtf)\0*.rtf\0Text Files (*.txt)\0*.txt\0"; + ofn.lpstrFile = szFileName; + ofn.nMaxFile = MAX_PATH; + ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; + ofn.lpstrDefExt = "html"; + + if(GetSaveFileName(&ofn)) { + HWND hSaveEdit = GetDlgItem(hwnd, ID_SAVEEDIT); + SetWindowText(hSaveEdit, szFileName); + } + break; + case ID_CONVERTBUTTON: + showError("Conversion starts here."); + break; + } + break; + default: + return DefWindowProc(hwnd, msg, wParam, lParam); + } + + return 0; +} + +int WINAPI showError(LPCTSTR lpText) { + return MessageBox(NULL, lpText, "Error", MB_ICONEXCLAMATION|MB_OK); +} diff --git a/resource.h b/resource.h new file mode 100644 index 0000000..ec34c6a --- /dev/null +++ b/resource.h @@ -0,0 +1 @@ +#define IDI_MYICON 101 diff --git a/resource.rc b/resource.rc new file mode 100644 index 0000000..0276c8f --- /dev/null +++ b/resource.rc @@ -0,0 +1,3 @@ +#include "resource.h" + +IDI_MYICON ICON "JALOG_CONV.ico"