From 1a96ca3edd2b3b503a00180a8d1bb225cac2059b Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Thu, 24 Nov 2011 23:17:31 +0100 Subject: add fishlim plugin --- plugins/fishlim/INSTALL | 16 +++ plugins/fishlim/LICENSE | 21 ++++ plugins/fishlim/Makefile | 40 ++++++ plugins/fishlim/README | 44 +++++++ plugins/fishlim/bool.h | 5 + plugins/fishlim/fish.c | 192 ++++++++++++++++++++++++++++ plugins/fishlim/fish.h | 42 +++++++ plugins/fishlim/irc.c | 112 +++++++++++++++++ plugins/fishlim/irc.h | 43 +++++++ plugins/fishlim/keystore.c | 217 ++++++++++++++++++++++++++++++++ plugins/fishlim/keystore.h | 42 +++++++ plugins/fishlim/makefile.mak | 30 +++++ plugins/fishlim/misc.c | 54 ++++++++ plugins/fishlim/misc.h | 36 ++++++ plugins/fishlim/test.c | 83 ++++++++++++ plugins/fishlim/xchat_plugin.c | 278 +++++++++++++++++++++++++++++++++++++++++ 16 files changed, 1255 insertions(+) create mode 100644 plugins/fishlim/INSTALL create mode 100644 plugins/fishlim/LICENSE create mode 100644 plugins/fishlim/Makefile create mode 100644 plugins/fishlim/README create mode 100644 plugins/fishlim/bool.h create mode 100644 plugins/fishlim/fish.c create mode 100644 plugins/fishlim/fish.h create mode 100644 plugins/fishlim/irc.c create mode 100644 plugins/fishlim/irc.h create mode 100644 plugins/fishlim/keystore.c create mode 100644 plugins/fishlim/keystore.h create mode 100644 plugins/fishlim/makefile.mak create mode 100644 plugins/fishlim/misc.c create mode 100644 plugins/fishlim/misc.h create mode 100644 plugins/fishlim/test.c create mode 100644 plugins/fishlim/xchat_plugin.c (limited to 'plugins/fishlim') diff --git a/plugins/fishlim/INSTALL b/plugins/fishlim/INSTALL new file mode 100644 index 00000000..d0d61ff8 --- /dev/null +++ b/plugins/fishlim/INSTALL @@ -0,0 +1,16 @@ + +Install dependencies (on Debian/Ubuntu): + + sudo apt-get install build-essential libglib2.0-dev libssl-dev + + +Build the plugin with: + + make + + +Install with: + + sudo make install + + diff --git a/plugins/fishlim/LICENSE b/plugins/fishlim/LICENSE new file mode 100644 index 00000000..427f2631 --- /dev/null +++ b/plugins/fishlim/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) 2010-2011 Samuel Lidén Borell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/plugins/fishlim/Makefile b/plugins/fishlim/Makefile new file mode 100644 index 00000000..7a5081e4 --- /dev/null +++ b/plugins/fishlim/Makefile @@ -0,0 +1,40 @@ + +OURCFLAGS = -Wall -Wextra -Wno-unused-parameter -std=c99 -pedantic `pkg-config --cflags glib-2.0 libcrypto` -DG_DISABLE_DEPRECATED=1 -fPIC $(CFLAGS) +#OURLINKFLAGS = `pkg-config --libs glib-2.0 libcrypto` -shared -fPIC -Wl,-z,defs $(CFLAGS) $(LDFLAGS) +OURLINKFLAGS = `pkg-config --libs glib-2.0 libcrypto` $(CFLAGS) $(LDFLAGS) + +BASE_OBJECTS = irc.o fish.o keystore.o misc.o +PLUGIN_OBJECTS = $(BASE_OBJECTS) xchat_plugin.o +TEST_OBJECTS = $(BASE_OBJECTS) test.o + +all: fishlim.so test + +fish.o: fish.h keystore.h misc.h +irc.o: irc.h +keystore.o: keystore.h irc.h fish.h misc.h +misc.o: misc.h +test.o: fish.h +xchat_plugin.o: fish.h irc.h keystore.h + +.c.o: + $(CC) $(OURCFLAGS) -c $< -o $@ + +fishlim.so: $(PLUGIN_OBJECTS) + $(CC) -shared $(OURLINKFLAGS) $(PLUGIN_OBJECTS) -o $@ + +test: $(TEST_OBJECTS) + $(CC) $(OURLINKFLAGS) $(TEST_OBJECTS) -o $@ + + +.PHONY: all clean distclean install uninstall +clean: + -$(RM) -f $(PLUGIN_OBJECTS) $(TEST_OBJECTS) fishlim.so test +distclean: clean + +install: fishlim.so + install -d $(DESTDIR)/usr/lib/xchat/plugins/ + install -m 644 fishlim.so $(DESTDIR)/usr/lib/xchat/plugins/ +uninstall: + rm $(DESTDIR)/usr/lib/xchat/plugins/fishlim.so + + diff --git a/plugins/fishlim/README b/plugins/fishlim/README new file mode 100644 index 00000000..9c5cd5fc --- /dev/null +++ b/plugins/fishlim/README @@ -0,0 +1,44 @@ + + + FiSHLiM + + http://fishlim.slbdata.se/ + + +FiSHLiM is an XChat plugin for FiSH IRC encryption. It's my attempt at making +a simple, lightweight and secure plugin for this encryption protocol. + +For installation instructions, see the INSTALL file. + + +Features +-------- + +Working: + * Sending/receiving messages + * Topic decryption + * Using unecrypted keys / keys without a password from blow.ini + * Pure protocol-level filtering (works with highlighting, nick coloring etc) + * Partially encrypted messages (i.e. prefixed with nickname by a bouncer) + +Not working: + * Key exchange + * Password-protected key storage + * Topic encryption + * Remote exploitation (hopefully!) + + +Commands +-------- + +/setkey [nick or #channel] password + + Sets the encryption key for the nick or channel to password. The keys + are stored in the configuration file in ~/.xchat2/blow.ini + + +/delkey nick-or-#channel + + Deletes the given nick or channel from the configuration file. + + diff --git a/plugins/fishlim/bool.h b/plugins/fishlim/bool.h new file mode 100644 index 00000000..2c8ddde4 --- /dev/null +++ b/plugins/fishlim/bool.h @@ -0,0 +1,5 @@ +/* stdbool.h replacement for MSVC */ +#define false 0 +#define true 1 +#define bool _Bool +typedef int _Bool; diff --git a/plugins/fishlim/fish.c b/plugins/fishlim/fish.c new file mode 100644 index 00000000..0d92ecc9 --- /dev/null +++ b/plugins/fishlim/fish.c @@ -0,0 +1,192 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#include +#include +#include + +#include "keystore.h" +#include "fish.h" + +#define IB 64 +static const char fish_base64[64] = "./0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; +static const signed char fish_unbase64[256] = { + IB,IB,IB,IB,IB,IB,IB,IB, IB,IB,IB,IB,IB,IB,IB,IB, + IB,IB,IB,IB,IB,IB,IB,IB, IB,IB,IB,IB,IB,IB,IB,IB, +// ! " # $ % & ' ( ) * + , - . / + IB,IB,IB,IB,IB,IB,IB,IB, IB,IB,IB,IB,IB,IB, 0, 1, +// 0 1 2 3 4 5 6 7 8 9 : ; < = > ? + 2, 3, 4, 5, 6, 7, 8, 9, 10,11,IB,IB,IB,IB,IB,IB, +// @ A B C D E F G H I J K L M N O + IB,38,39,40,41,42,43,44, 45,46,47,48,49,50,51,52, +// P Q R S T U V W X Y Z [ \ ] ^ _ + 53,54,55,56,57,58,59,60, 61,62,63,IB,IB,IB,IB,IB, +// ` a b c d e f g h i j k l m n o + IB,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26, +// p q r s t u v w x y z { | } ~ + 27,28,29,30,31,32,33,34, 35,36,37,IB,IB,IB,IB,IB, +}; + +#define GET_BYTES(dest, source) do { \ + *((dest)++) = ((source) >> 24) & 0xFF; \ + *((dest)++) = ((source) >> 16) & 0xFF; \ + *((dest)++) = ((source) >> 8) & 0xFF; \ + *((dest)++) = (source) & 0xFF; \ +} while (0); + + +char *fish_encrypt(const char *key, size_t keylen, const char *message) { + BF_KEY bfkey; + size_t messagelen; + size_t i; + int j; + char *encrypted; + char *end; + unsigned char bit; + unsigned char word; + unsigned char d; + BF_set_key(&bfkey, keylen, (const unsigned char*)key); + + messagelen = strlen(message); + if (messagelen == 0) return NULL; + encrypted = malloc(((messagelen-1)/8)*12 + 12 + 1); // each 8-byte block becomes 12 bytes + end = encrypted; + if (!encrypted) return NULL; + + while (*message) { + // Read 8 bytes (a Blowfish block) + BF_LONG binary[2] = { 0, 0 }; + unsigned char c; + for (i = 0; i < 8; i++) { + c = message[i]; + binary[i >> 2] |= c << 8*(3 - (i&3)); + if (c == '\0') break; + } + message += 8; + + // Encrypt block + BF_encrypt(binary, &bfkey); + + // Emit FiSH-BASE64 + bit = 0; + word = 1; + for (j = 0; j < 12; j++) { + d = fish_base64[(binary[word] >> bit) & 63]; + *(end++) = d; + bit += 6; + if (j == 5) { + bit = 0; + word = 0; + } + } + + // Stop if a null terminator was found + if (c == '\0') break; + } + *end = '\0'; + return encrypted; +} + + +char *fish_decrypt(const char *key, size_t keylen, const char *data) { + BF_KEY bfkey; + size_t i; + char *decrypted; + char *end; + unsigned char bit; + unsigned char word; + unsigned char d; + BF_set_key(&bfkey, keylen, (const unsigned char*)key); + + decrypted = malloc(strlen(data)+1); + end = decrypted; + if (!decrypted) return NULL; + + while (*data) { + // Convert from FiSH-BASE64 + BF_LONG binary[2] = { 0, 0 }; + bit = 0; + word = 1; + for (i = 0; i < 12; i++) { + d = fish_unbase64[(const unsigned char)*(data++)]; + if (d == IB) goto decrypt_end; + binary[word] |= d << bit; + bit += 6; + if (i == 5) { + bit = 0; + word = 0; + } + } + + // Decrypt block + BF_decrypt(binary, &bfkey); + + // Copy to buffer + GET_BYTES(end, binary[0]); + GET_BYTES(end, binary[1]); + } + + decrypt_end: + *end = '\0'; + return decrypted; +} + +/** + * Encrypts a message (see fish_decrypt). The key is searched for in the + * key store. + */ +char *fish_encrypt_for_nick(const char *nick, const char *data) { + char *key; + char *encrypted; + + // Look for key + key = keystore_get_key(nick); + if (!key) return NULL; + + // Encrypt + encrypted = fish_encrypt(key, strlen(key), data); + + free(key); + return encrypted; +} + +/** + * Decrypts a message (see fish_decrypt). The key is searched for in the + * key store. + */ +char *fish_decrypt_from_nick(const char *nick, const char *data) { + char *key; + char *decrypted; + // Look for key + key = keystore_get_key(nick); + if (!key) return NULL; + + // Decrypt + decrypted = fish_decrypt(key, strlen(key), data); + + free(key); + return decrypted; +} + + diff --git a/plugins/fishlim/fish.h b/plugins/fishlim/fish.h new file mode 100644 index 00000000..d4057a7b --- /dev/null +++ b/plugins/fishlim/fish.h @@ -0,0 +1,42 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#ifndef FISH_H +#define FISH_H + +#ifdef _MSC_VER +#include "bool.h" +#else +#include +#endif +#include + +char *fish_encrypt(const char *key, size_t keylen, const char *message); +char *fish_decrypt(const char *key, size_t keylen, const char *data); +char *fish_encrypt_for_nick(const char *nick, const char *data); +char *fish_decrypt_from_nick(const char *nick, const char *data); + +#endif + + diff --git a/plugins/fishlim/irc.c b/plugins/fishlim/irc.c new file mode 100644 index 00000000..a96c4c91 --- /dev/null +++ b/plugins/fishlim/irc.c @@ -0,0 +1,112 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#include +#include +#include "irc.h" + +/** + * Parses an IRC message. The words array should contain the message splitted + * at spaces. The prefix and command is extracted from the message, and + * parameters_offset is set to the index of the first parameter. + */ +bool irc_parse_message(const char *words[], + const char **prefix, const char **command, + size_t *parameters_offset) { + size_t w = 1; + if (prefix) *prefix = NULL; + if (command) *command = NULL; + + // See if the message starts with a prefix (sender user) + if (words[w][0] == ':') { + if (prefix) *prefix = &words[w][1]; + w++; + } + + // Check command + if (words[w][0] == '\0') return false; + if (command) *command = words[w]; + w++; + + *parameters_offset = w; + return true; +} + + +/** + * Finds the nick part of a "IRC prefix", which can have any + * of the following forms: + * + * nick + * nick@host + * nick!ident + * nick!ident@host + */ +char *irc_prefix_get_nick(const char *prefix) { + const char *end; + char *nick; + size_t length; + + if (!prefix) return NULL; + + // Find end of nick + end = prefix; + while (*end != '\0' && *end != '!' && *end != '@') end++; + + // Allocate string + length = end - prefix; + nick = malloc(length+1); + if (!nick) return NULL; + + // Copy to string + memcpy(nick, prefix, length); + nick[length] = '\0'; + return nick; +} + + +/** + * Compares two nick names. Return 0 if equal. Otherwise the return value is + * less than zero if a is less than b or greater than zero if a is greater + * than b. + */ +int irc_nick_cmp(const char *a, const char *b) { + char ac; + char bc; + char diff; + for (;;) { + ac = *(a++); + bc = *(b++); + + // Change into IRC uppercase (see RFC 2812 section 2.2) + if (ac >= 'a' && ac <= '~') ac &= ~0x20; + if (bc >= 'a' && bc <= '~') bc &= ~0x20; + + diff = ac - bc; + if (diff) return diff; + if (!ac) return 0; + } +} + + diff --git a/plugins/fishlim/irc.h b/plugins/fishlim/irc.h new file mode 100644 index 00000000..0c1e7463 --- /dev/null +++ b/plugins/fishlim/irc.h @@ -0,0 +1,43 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#ifndef IRC_H +#define IRC_H + +#ifdef _MSC_VER +#include "bool.h" +#else +#include +#endif +#include + +bool irc_parse_message(const char *words[], + const char **prefix, const char **command, + size_t *parameters_offset); +char *irc_prefix_get_nick(const char *prefix); +int irc_nick_cmp(const char *a, const char *b); + +#endif + + diff --git a/plugins/fishlim/keystore.c b/plugins/fishlim/keystore.c new file mode 100644 index 00000000..6eccccaf --- /dev/null +++ b/plugins/fishlim/keystore.c @@ -0,0 +1,217 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#include +#include +#include +#include "irc.h" +#include "fish.h" +#include "misc.h" +#include "keystore.h" + + +static char *keystore_password = NULL; + + +/** + * Returns the path to the key store file. + */ +static gchar *get_config_filename() { + // TODO use xchat_get_info(ph, "xchatdirfs") + const gchar *homedir = g_get_home_dir(); + return g_build_filename(homedir, ".xchat2", "blow.ini", NULL); +} + +/** + * Opens the key store file: ~/.xchat2/blow.ini + */ +static GKeyFile *getConfigFile() { + gchar *filename = get_config_filename(); + + GKeyFile *keyfile = g_key_file_new(); + g_key_file_load_from_file(keyfile, filename, + G_KEY_FILE_KEEP_COMMENTS | + G_KEY_FILE_KEEP_TRANSLATIONS, NULL); + + g_free(filename); + return keyfile; +} + + +/** + * Returns the key store password, or the default. + */ +static const char *get_keystore_password() { + return (keystore_password != NULL ? + keystore_password : + // Silly default value... + "blowinikey"); +} + + +/** + * Gets a value for a nick/channel from blow.ini. Unlike + * g_key_file_get_string, this function is case insensitive. + */ +static gchar *get_nick_value(GKeyFile *keyfile, const char *nick, const char *item) { + gchar **group; + gchar **groups = g_key_file_get_groups(keyfile, NULL); + gchar *result = NULL; + + for (group = groups; *group != NULL; group++) { + if (!irc_nick_cmp(*group, nick)) { + result = g_key_file_get_string(keyfile, *group, item, NULL); + break; + } + } + + g_strfreev(groups); + return result; +} + + +/** + * Extracts a key from the key store file. + */ +char *keystore_get_key(const char *nick) { + // Get the key + GKeyFile *keyfile = getConfigFile(); + gchar *value = get_nick_value(keyfile, nick, "key"); + g_key_file_free(keyfile); + if (!value) return NULL; + + if (strncmp(value, "+OK ", 4) != 0) { + // Key is stored in plaintext + return import_glib_string(value); + } else { + // Key is encrypted + const char *encrypted = value+4; + const char *password = get_keystore_password(); + char *decrypted = fish_decrypt(password, strlen(password), encrypted); + g_free(value); + return decrypted; + } +} + +/** + * Deletes a nick and the associated key in the key store file. + */ +static bool delete_nick(GKeyFile *keyfile, const char *nick) { + gchar **group; + gchar **groups = g_key_file_get_groups(keyfile, NULL); + bool ok = false; + + for (group = groups; *group != NULL; group++) { + if (!irc_nick_cmp(*group, nick)) { + ok = g_key_file_remove_group(keyfile, *group, NULL); + break; + } + } + + g_strfreev(groups); + return ok; +} + +/** + * Writes the key store file to disk. + */ +static bool save_keystore(GKeyFile *keyfile) { + char *filename; + bool ok; + // Serialize + gsize file_length; + gchar *file_data = g_key_file_to_data(keyfile, &file_length, NULL); + if (!file_data) return false; + + // Write to file + filename = get_config_filename(); + ok = g_file_set_contents(filename, file_data, file_length, NULL); + g_free(filename); + g_free(file_data); + return ok; +} + +/** + * Sets a key in the key store file. + */ +bool keystore_store_key(const char *nick, const char *key) { + const char *password; + char *encrypted; + char *wrapped; + bool ok = false; + GKeyFile *keyfile = getConfigFile(); + + // Remove old key + delete_nick(keyfile, nick); + + // Add new key + password = get_keystore_password(); + if (password) { + // Encrypt the password + encrypted = fish_encrypt(password, strlen(password), key); + if (!encrypted) goto end; + + // Prepend "OK+ " + wrapped = g_strconcat("OK+ ", encrypted, NULL); + g_free(encrypted); + + // Store encrypted in file + g_key_file_set_string(keyfile, nick, "key", wrapped); + free(wrapped); + } else { + // Store unencrypted in file + g_key_file_set_string(keyfile, nick, "key", key); + } + + // Save key store file + ok = save_keystore(keyfile); + + end: + g_key_file_free(keyfile); + return ok; +} + +/** + * Deletes a nick from the key store. + */ +bool keystore_delete_nick(const char *nick) { + GKeyFile *keyfile = getConfigFile(); + + // Delete entry + bool ok = delete_nick(keyfile, nick); + + // Save + if (ok) save_keystore(keyfile); + + g_key_file_free(keyfile); + return ok; +} + + +void keystore_secure_free(void *ptr, size_t size) { + secure_erase(ptr, size); + free(ptr); +} + + diff --git a/plugins/fishlim/keystore.h b/plugins/fishlim/keystore.h new file mode 100644 index 00000000..e6c527c7 --- /dev/null +++ b/plugins/fishlim/keystore.h @@ -0,0 +1,42 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#ifndef KEYSTORE_H +#define KEYSTORE_H + +#ifdef _MSC_VER +#include "bool.h" +#else +#include +#endif +#include + +char *keystore_get_key(const char *nick); +int keystore_store_key(const char *nick, const char *key); +bool keystore_delete_nick(const char *nick); + +void keystore_secure_free(void *ptr, size_t size); + +#endif + diff --git a/plugins/fishlim/makefile.mak b/plugins/fishlim/makefile.mak new file mode 100644 index 00000000..decf9bb4 --- /dev/null +++ b/plugins/fishlim/makefile.mak @@ -0,0 +1,30 @@ +include "..\..\src\makeinc.mak" + +TARGET = xcfishlim.dll + +CFLAGS = $(CFLAGS) + +FISHLIM_OBJECTS = \ +fish.obj \ +irc.obj \ +keystore.obj \ +misc.obj \ +xchat_plugin.obj + +all: $(FISHLIM_OBJECTS) fishlim.def + link $(LDFLAGS) $(LIBS) /dll /out:xcfishlim.dll /def:fishlim.def $(FISHLIM_OBJECTS) + +fishlim.def: + echo EXPORTS > fishlim.def + echo xchat_plugin_init >> fishlim.def + echo xchat_plugin_deinit >> fishlim.def + echo xchat_plugin_get_info >> fishlim.def + +.c.obj: + $(CC) $(CFLAGS) $(GLIB) /I.. /c $< + +clean: + del *.obj + del *.dll + del *.exp + del *.lib diff --git a/plugins/fishlim/misc.c b/plugins/fishlim/misc.c new file mode 100644 index 00000000..32fe3595 --- /dev/null +++ b/plugins/fishlim/misc.c @@ -0,0 +1,54 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#include +#include +#include +#include "misc.h" + + +void secure_erase(void *ptr, size_t size) { + // "volatile" prevents this code from being optimized away + volatile char* volptr = ptr; + while (size--) *volptr++ = 0; +} + +/** + * Re-allocates a string with the native allocator. + */ +char *import_glib_string(gchar *gstr) { + size_t size; + char *native; + if (g_mem_is_system_malloc()) return gstr; + + size = strlen(gstr)+1; + native = malloc(size); + memcpy(native, gstr, size); + + secure_erase(gstr, size); + g_free(gstr); + return native; +} + + diff --git a/plugins/fishlim/misc.h b/plugins/fishlim/misc.h new file mode 100644 index 00000000..0adc928c --- /dev/null +++ b/plugins/fishlim/misc.h @@ -0,0 +1,36 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#ifndef MISC_H +#define MISC_H + +void secure_erase(void *ptr, size_t size); + +#ifdef __G_LIB_H__ +char *import_glib_string(gchar *gstr); +#endif + +#endif + + diff --git a/plugins/fishlim/test.c b/plugins/fishlim/test.c new file mode 100644 index 00000000..2032496a --- /dev/null +++ b/plugins/fishlim/test.c @@ -0,0 +1,83 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#include +#include +#include "fish.h" + +static int decrypt(int nick_count, char *nicks[]) { + char encrypted[8192]; + while (fgets(encrypted, sizeof(encrypted), stdin)) { + char *msg; + for (int i = 0; i < nick_count; i++) { + msg = fish_decrypt_from_nick(nicks[i], encrypted); + if (msg) goto success; + } + fprintf(stderr, "None of the recipients were found in the key store!\n"); + return 1; + success: + fprintf(stderr, "Decrypted text >>>%s<<<\n", msg); + } + return 0; +} + +static int encrypt(int nick_count, char *nicks[]) { + char message[8192]; + while (fgets(message, sizeof(message), stdin)) { + // Remove newline character + char *newline = strchr(message, '\n'); + if (newline) *newline = '\0'; + + bool error = false; + for (int i = 0; i < nick_count; i++) { + char *encrypted = fish_encrypt_for_nick(nicks[i], message); + if (encrypted) { + fprintf(stderr, "Encrypted [%s]: >>>%s<<<\n", nicks[i], encrypted); + } else { + error = true; + } + } + + if (error) { + fprintf(stderr, "Some of the recipients were't found in the key store!\n"); + return 1; + } + } + return 0; +} + +int main(int argc, char *argv[]) { + if (argc < 2) { + fprintf(stderr, "usage: %s [-e] nick...\n", argv[0]); + return 2; + } + + if (strcmp(argv[1], "-e") == 0) { + return encrypt(argc-2, &argv[2]); + } else { + return decrypt(argc-1, &argv[1]); + } +} + + diff --git a/plugins/fishlim/xchat_plugin.c b/plugins/fishlim/xchat_plugin.c new file mode 100644 index 00000000..dc67fddb --- /dev/null +++ b/plugins/fishlim/xchat_plugin.c @@ -0,0 +1,278 @@ +/* + + Copyright (c) 2010-2011 Samuel Lidén Borell + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#include +#include + +// #pragma GCC visibility push(default) +#include "xchat-plugin.h" +#define XCHAT_MAX_WORDS 32 +// #pragma GCC visibility pop + +//#define EXPORT __attribute((visibility("default"))) +//#define EXPORT + +#include "fish.h" +#include "keystore.h" +#include "irc.h" + +static const char plugin_name[] = "FiSHLiM"; +static const char plugin_desc[] = "Encryption plugin for the FiSH protocol. Less is More!"; +static const char plugin_version[] = "0.0.13"; + +static const char usage_setkey[] = "Usage: SETKEY [] , sets the key for a channel or nick"; +static const char usage_delkey[] = "Usage: DELKEY , deletes the key for a channel or nick"; + +static xchat_plugin *ph; + + +/** + * Appends data to a string. Returns true if there was sufficient memory. + * Frees *s and returns false if an error occurs. + */ +static bool append(char **s, size_t *length, const char *data) { + size_t datalen = strlen(data); + char *extended = realloc(*s, *length + datalen + 1); + if (!extended) { + free(*s); + return false; + } + memcpy(extended + *length, data, datalen + 1); + *s = extended; + *length += datalen; + return true; +} + + +/*static int handle_debug(char *word[], char *word_eol[], void *userdata) { + xchat_printf(ph, "debug incoming: "); + for (size_t i = 1; word[i] != NULL && word[i][0] != '\0'; i++) { + xchat_printf(ph, ">%s< ", word[i]); + } + xchat_printf(ph, "\n"); + return XCHAT_EAT_NONE; +}*/ + +/** + * Called when a message is to be sent. + */ +static int handle_outgoing(char *word[], char *word_eol[], void *userdata) { + const char *own_nick; + // Encrypt the message if possible + const char *channel = xchat_get_info(ph, "channel"); + char *encrypted = fish_encrypt_for_nick(channel, word_eol[1]); + if (!encrypted) return XCHAT_EAT_NONE; + + // Display message + own_nick = xchat_get_info(ph, "nick"); + xchat_emit_print(ph, "Your Message", own_nick, word_eol[1], NULL); + + // Send message + xchat_commandf(ph, "PRIVMSG %s :+OK %s", channel, encrypted); + + free(encrypted); + return XCHAT_EAT_XCHAT; +} + +/** + * Called when a channel message or private message is received. + */ +static int handle_incoming(char *word[], char *word_eol[], void *userdata) { + const char *prefix; + const char *command; + const char *recipient; + const char *encrypted; + const char *peice; + char *sender_nick; + char *decrypted; + char *message; + size_t w; + size_t ew; + size_t uw; + size_t length; + + if (!irc_parse_message((const char **)word, &prefix, &command, &w)) + return XCHAT_EAT_NONE; + + // Topic (command 332) has an extra parameter + if (!strcmp(command, "332")) w++; + + // Look for encrypted data + ew; + for (ew = w+1; ew < XCHAT_MAX_WORDS-1; ew++) { + const char *s = (ew == w+1 ? word[ew]+1 : word[ew]); + if (strcmp(s, "+OK") == 0) goto has_encrypted_data; + } + return XCHAT_EAT_NONE; + has_encrypted_data: ; + // Extract sender nick and recipient nick/channel + sender_nick = irc_prefix_get_nick(prefix); + recipient = word[w]; + + // Try to decrypt with these (the keys are searched for in the key store) + encrypted = word[ew+1]; + decrypted = fish_decrypt_from_nick(recipient, encrypted); + if (!decrypted) decrypted = fish_decrypt_from_nick(sender_nick, encrypted); + + // Check for error + if (!decrypted) goto decrypt_error; + + // Build unecrypted message + message = NULL; + length = 0; + if (!append(&message, &length, "RECV")) goto decrypt_error; + + for (uw = 1; uw < XCHAT_MAX_WORDS; uw++) { + if (word[uw][0] != '\0' && !append(&message, &length, " ")) goto decrypt_error; + + if (uw == ew) { + // Add the encrypted data + peice = decrypted; + uw++; // Skip "OK+" + } else { + // Add unencrypted data (for example, a prefix from a bouncer or bot) + peice = (uw == w+1 ? word[uw]+1 : word[uw]); + } + + if (!append(&message, &length, peice)) goto decrypt_error; + } + free(decrypted); + + // Simulate unencrypted message + //xchat_printf(ph, "simulating: %s\n", message); + xchat_command(ph, message); + + free(message); + free(sender_nick); + return XCHAT_EAT_XCHAT; + + decrypt_error: + free(decrypted); + free(sender_nick); + return XCHAT_EAT_NONE; +} + +/** + * Command handler for /setkey + */ +static int handle_setkey(char *word[], char *word_eol[], void *userdata) { + const char *nick; + const char *key; + + // Check syntax + if (*word[2] == '\0') { + xchat_printf(ph, "%s\n", usage_setkey); + return XCHAT_EAT_XCHAT; + } + + if (*word[3] == '\0') { + // /setkey password + nick = xchat_get_info(ph, "channel"); + key = word_eol[2]; + } else { + // /setkey #channel password + nick = word[2]; + key = word_eol[3]; + } + + // Set password + if (keystore_store_key(nick, key)) { + xchat_printf(ph, "Stored key for %s\n", nick); + } else { + xchat_printf(ph, "\00305Failed to store key in blow.ini\n", nick, key); + } + + return XCHAT_EAT_XCHAT; +} + +/** + * Command handler for /delkey + */ +static int handle_delkey(char *word[], char *word_eol[], void *userdata) { + const char *nick; + + // Check syntax + if (*word[2] == '\0' || *word[3] != '\0') { + xchat_printf(ph, "%s\n", usage_delkey); + return XCHAT_EAT_XCHAT; + } + + nick = word_eol[2]; + + // Delete the given nick from the key store + if (keystore_delete_nick(nick)) { + xchat_printf(ph, "Deleted key for %s\n", nick); + } else { + xchat_printf(ph, "\00305Failed to delete key in blow.ini!\n", nick); + } + + return XCHAT_EAT_XCHAT; +} + +/** + * Returns the plugin name version information. + */ +void xchat_plugin_get_info(const char **name, const char **desc, + const char **version, void **reserved) { + *name = plugin_name; + *desc = plugin_desc; + *version = plugin_version; +} + +/** + * Plugin entry point. + */ +int xchat_plugin_init(xchat_plugin *plugin_handle, + const char **name, + const char **desc, + const char **version, + char *arg) { + ph = plugin_handle; + + /* Send our info to XChat */ + *name = plugin_name; + *desc = plugin_desc; + *version = plugin_version; + + /* Register commands */ + xchat_hook_command(ph, "SETKEY", XCHAT_PRI_NORM, handle_setkey, usage_setkey, NULL); + xchat_hook_command(ph, "DELKEY", XCHAT_PRI_NORM, handle_delkey, usage_delkey, NULL); + + /* Add handlers */ + xchat_hook_command(ph, "", XCHAT_PRI_NORM, handle_outgoing, NULL, NULL); + xchat_hook_server(ph, "NOTICE", XCHAT_PRI_NORM, handle_incoming, NULL); + xchat_hook_server(ph, "PRIVMSG", XCHAT_PRI_NORM, handle_incoming, NULL); + //xchat_hook_server(ph, "RAW LINE", XCHAT_PRI_NORM, handle_debug, NULL); + xchat_hook_server(ph, "TOPIC", XCHAT_PRI_NORM, handle_incoming, NULL); + xchat_hook_server(ph, "332", XCHAT_PRI_NORM, handle_incoming, NULL); + + xchat_printf (ph, "%s plugin loaded\n", plugin_name); + /* Return success */ + return 1; +} + +int xchat_plugin_deinit(void) { + xchat_printf (ph, "%s plugin unloaded\n", plugin_name); + return 1; +} -- cgit 1.4.1 From b15fe1ddf13de866d1ad8068db1d4632b5bbe094 Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Thu, 24 Nov 2011 23:37:43 +0100 Subject: fix fishlim config handler --- plugins/fishlim/keystore.c | 10 +--------- plugins/fishlim/xchat_plugin.c | 8 ++++++++ plugins/fishlim/xchat_plugin.h | 1 + 3 files changed, 10 insertions(+), 9 deletions(-) create mode 100644 plugins/fishlim/xchat_plugin.h (limited to 'plugins/fishlim') diff --git a/plugins/fishlim/keystore.c b/plugins/fishlim/keystore.c index 6eccccaf..ff30faa7 100644 --- a/plugins/fishlim/keystore.c +++ b/plugins/fishlim/keystore.c @@ -29,20 +29,12 @@ #include "fish.h" #include "misc.h" #include "keystore.h" +#include "xchat_plugin.h" static char *keystore_password = NULL; -/** - * Returns the path to the key store file. - */ -static gchar *get_config_filename() { - // TODO use xchat_get_info(ph, "xchatdirfs") - const gchar *homedir = g_get_home_dir(); - return g_build_filename(homedir, ".xchat2", "blow.ini", NULL); -} - /** * Opens the key store file: ~/.xchat2/blow.ini */ diff --git a/plugins/fishlim/xchat_plugin.c b/plugins/fishlim/xchat_plugin.c index dc67fddb..dd410548 100644 --- a/plugins/fishlim/xchat_plugin.c +++ b/plugins/fishlim/xchat_plugin.c @@ -22,6 +22,7 @@ */ +#include #include #include @@ -47,6 +48,13 @@ static const char usage_delkey[] = "Usage: DELKEY , deletes th static xchat_plugin *ph; +/** + * Returns the path to the key store file. + */ +gchar *get_config_filename() { + return g_build_filename(xchat_get_info(ph, "xchatdirfs"), "blow.ini", NULL); +} + /** * Appends data to a string. Returns true if there was sufficient memory. * Frees *s and returns false if an error occurs. diff --git a/plugins/fishlim/xchat_plugin.h b/plugins/fishlim/xchat_plugin.h new file mode 100644 index 00000000..40e21816 --- /dev/null +++ b/plugins/fishlim/xchat_plugin.h @@ -0,0 +1 @@ +gchar *get_config_filename(); -- cgit 1.4.1 From 3067b7b267d881963498d277d657e679ac15af45 Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Fri, 25 Nov 2011 10:23:23 +0100 Subject: rename fishlim main file to avoid confusion --- plugins/fishlim/plugin_xchat.c | 286 +++++++++++++++++++++++++++++++++++++++++ plugins/fishlim/plugin_xchat.h | 1 + plugins/fishlim/xchat_plugin.c | 286 ----------------------------------------- plugins/fishlim/xchat_plugin.h | 1 - 4 files changed, 287 insertions(+), 287 deletions(-) create mode 100644 plugins/fishlim/plugin_xchat.c create mode 100644 plugins/fishlim/plugin_xchat.h delete mode 100644 plugins/fishlim/xchat_plugin.c delete mode 100644 plugins/fishlim/xchat_plugin.h (limited to 'plugins/fishlim') diff --git a/plugins/fishlim/plugin_xchat.c b/plugins/fishlim/plugin_xchat.c new file mode 100644 index 00000000..dd410548 --- /dev/null +++ b/plugins/fishlim/plugin_xchat.c @@ -0,0 +1,286 @@ +/* + + Copyright (c) 2010-2011 Samuel Lidén Borell + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#include +#include +#include + +// #pragma GCC visibility push(default) +#include "xchat-plugin.h" +#define XCHAT_MAX_WORDS 32 +// #pragma GCC visibility pop + +//#define EXPORT __attribute((visibility("default"))) +//#define EXPORT + +#include "fish.h" +#include "keystore.h" +#include "irc.h" + +static const char plugin_name[] = "FiSHLiM"; +static const char plugin_desc[] = "Encryption plugin for the FiSH protocol. Less is More!"; +static const char plugin_version[] = "0.0.13"; + +static const char usage_setkey[] = "Usage: SETKEY [] , sets the key for a channel or nick"; +static const char usage_delkey[] = "Usage: DELKEY , deletes the key for a channel or nick"; + +static xchat_plugin *ph; + + +/** + * Returns the path to the key store file. + */ +gchar *get_config_filename() { + return g_build_filename(xchat_get_info(ph, "xchatdirfs"), "blow.ini", NULL); +} + +/** + * Appends data to a string. Returns true if there was sufficient memory. + * Frees *s and returns false if an error occurs. + */ +static bool append(char **s, size_t *length, const char *data) { + size_t datalen = strlen(data); + char *extended = realloc(*s, *length + datalen + 1); + if (!extended) { + free(*s); + return false; + } + memcpy(extended + *length, data, datalen + 1); + *s = extended; + *length += datalen; + return true; +} + + +/*static int handle_debug(char *word[], char *word_eol[], void *userdata) { + xchat_printf(ph, "debug incoming: "); + for (size_t i = 1; word[i] != NULL && word[i][0] != '\0'; i++) { + xchat_printf(ph, ">%s< ", word[i]); + } + xchat_printf(ph, "\n"); + return XCHAT_EAT_NONE; +}*/ + +/** + * Called when a message is to be sent. + */ +static int handle_outgoing(char *word[], char *word_eol[], void *userdata) { + const char *own_nick; + // Encrypt the message if possible + const char *channel = xchat_get_info(ph, "channel"); + char *encrypted = fish_encrypt_for_nick(channel, word_eol[1]); + if (!encrypted) return XCHAT_EAT_NONE; + + // Display message + own_nick = xchat_get_info(ph, "nick"); + xchat_emit_print(ph, "Your Message", own_nick, word_eol[1], NULL); + + // Send message + xchat_commandf(ph, "PRIVMSG %s :+OK %s", channel, encrypted); + + free(encrypted); + return XCHAT_EAT_XCHAT; +} + +/** + * Called when a channel message or private message is received. + */ +static int handle_incoming(char *word[], char *word_eol[], void *userdata) { + const char *prefix; + const char *command; + const char *recipient; + const char *encrypted; + const char *peice; + char *sender_nick; + char *decrypted; + char *message; + size_t w; + size_t ew; + size_t uw; + size_t length; + + if (!irc_parse_message((const char **)word, &prefix, &command, &w)) + return XCHAT_EAT_NONE; + + // Topic (command 332) has an extra parameter + if (!strcmp(command, "332")) w++; + + // Look for encrypted data + ew; + for (ew = w+1; ew < XCHAT_MAX_WORDS-1; ew++) { + const char *s = (ew == w+1 ? word[ew]+1 : word[ew]); + if (strcmp(s, "+OK") == 0) goto has_encrypted_data; + } + return XCHAT_EAT_NONE; + has_encrypted_data: ; + // Extract sender nick and recipient nick/channel + sender_nick = irc_prefix_get_nick(prefix); + recipient = word[w]; + + // Try to decrypt with these (the keys are searched for in the key store) + encrypted = word[ew+1]; + decrypted = fish_decrypt_from_nick(recipient, encrypted); + if (!decrypted) decrypted = fish_decrypt_from_nick(sender_nick, encrypted); + + // Check for error + if (!decrypted) goto decrypt_error; + + // Build unecrypted message + message = NULL; + length = 0; + if (!append(&message, &length, "RECV")) goto decrypt_error; + + for (uw = 1; uw < XCHAT_MAX_WORDS; uw++) { + if (word[uw][0] != '\0' && !append(&message, &length, " ")) goto decrypt_error; + + if (uw == ew) { + // Add the encrypted data + peice = decrypted; + uw++; // Skip "OK+" + } else { + // Add unencrypted data (for example, a prefix from a bouncer or bot) + peice = (uw == w+1 ? word[uw]+1 : word[uw]); + } + + if (!append(&message, &length, peice)) goto decrypt_error; + } + free(decrypted); + + // Simulate unencrypted message + //xchat_printf(ph, "simulating: %s\n", message); + xchat_command(ph, message); + + free(message); + free(sender_nick); + return XCHAT_EAT_XCHAT; + + decrypt_error: + free(decrypted); + free(sender_nick); + return XCHAT_EAT_NONE; +} + +/** + * Command handler for /setkey + */ +static int handle_setkey(char *word[], char *word_eol[], void *userdata) { + const char *nick; + const char *key; + + // Check syntax + if (*word[2] == '\0') { + xchat_printf(ph, "%s\n", usage_setkey); + return XCHAT_EAT_XCHAT; + } + + if (*word[3] == '\0') { + // /setkey password + nick = xchat_get_info(ph, "channel"); + key = word_eol[2]; + } else { + // /setkey #channel password + nick = word[2]; + key = word_eol[3]; + } + + // Set password + if (keystore_store_key(nick, key)) { + xchat_printf(ph, "Stored key for %s\n", nick); + } else { + xchat_printf(ph, "\00305Failed to store key in blow.ini\n", nick, key); + } + + return XCHAT_EAT_XCHAT; +} + +/** + * Command handler for /delkey + */ +static int handle_delkey(char *word[], char *word_eol[], void *userdata) { + const char *nick; + + // Check syntax + if (*word[2] == '\0' || *word[3] != '\0') { + xchat_printf(ph, "%s\n", usage_delkey); + return XCHAT_EAT_XCHAT; + } + + nick = word_eol[2]; + + // Delete the given nick from the key store + if (keystore_delete_nick(nick)) { + xchat_printf(ph, "Deleted key for %s\n", nick); + } else { + xchat_printf(ph, "\00305Failed to delete key in blow.ini!\n", nick); + } + + return XCHAT_EAT_XCHAT; +} + +/** + * Returns the plugin name version information. + */ +void xchat_plugin_get_info(const char **name, const char **desc, + const char **version, void **reserved) { + *name = plugin_name; + *desc = plugin_desc; + *version = plugin_version; +} + +/** + * Plugin entry point. + */ +int xchat_plugin_init(xchat_plugin *plugin_handle, + const char **name, + const char **desc, + const char **version, + char *arg) { + ph = plugin_handle; + + /* Send our info to XChat */ + *name = plugin_name; + *desc = plugin_desc; + *version = plugin_version; + + /* Register commands */ + xchat_hook_command(ph, "SETKEY", XCHAT_PRI_NORM, handle_setkey, usage_setkey, NULL); + xchat_hook_command(ph, "DELKEY", XCHAT_PRI_NORM, handle_delkey, usage_delkey, NULL); + + /* Add handlers */ + xchat_hook_command(ph, "", XCHAT_PRI_NORM, handle_outgoing, NULL, NULL); + xchat_hook_server(ph, "NOTICE", XCHAT_PRI_NORM, handle_incoming, NULL); + xchat_hook_server(ph, "PRIVMSG", XCHAT_PRI_NORM, handle_incoming, NULL); + //xchat_hook_server(ph, "RAW LINE", XCHAT_PRI_NORM, handle_debug, NULL); + xchat_hook_server(ph, "TOPIC", XCHAT_PRI_NORM, handle_incoming, NULL); + xchat_hook_server(ph, "332", XCHAT_PRI_NORM, handle_incoming, NULL); + + xchat_printf (ph, "%s plugin loaded\n", plugin_name); + /* Return success */ + return 1; +} + +int xchat_plugin_deinit(void) { + xchat_printf (ph, "%s plugin unloaded\n", plugin_name); + return 1; +} diff --git a/plugins/fishlim/plugin_xchat.h b/plugins/fishlim/plugin_xchat.h new file mode 100644 index 00000000..40e21816 --- /dev/null +++ b/plugins/fishlim/plugin_xchat.h @@ -0,0 +1 @@ +gchar *get_config_filename(); diff --git a/plugins/fishlim/xchat_plugin.c b/plugins/fishlim/xchat_plugin.c deleted file mode 100644 index dd410548..00000000 --- a/plugins/fishlim/xchat_plugin.c +++ /dev/null @@ -1,286 +0,0 @@ -/* - - Copyright (c) 2010-2011 Samuel Lidén Borell - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - -*/ - -#include -#include -#include - -// #pragma GCC visibility push(default) -#include "xchat-plugin.h" -#define XCHAT_MAX_WORDS 32 -// #pragma GCC visibility pop - -//#define EXPORT __attribute((visibility("default"))) -//#define EXPORT - -#include "fish.h" -#include "keystore.h" -#include "irc.h" - -static const char plugin_name[] = "FiSHLiM"; -static const char plugin_desc[] = "Encryption plugin for the FiSH protocol. Less is More!"; -static const char plugin_version[] = "0.0.13"; - -static const char usage_setkey[] = "Usage: SETKEY [] , sets the key for a channel or nick"; -static const char usage_delkey[] = "Usage: DELKEY , deletes the key for a channel or nick"; - -static xchat_plugin *ph; - - -/** - * Returns the path to the key store file. - */ -gchar *get_config_filename() { - return g_build_filename(xchat_get_info(ph, "xchatdirfs"), "blow.ini", NULL); -} - -/** - * Appends data to a string. Returns true if there was sufficient memory. - * Frees *s and returns false if an error occurs. - */ -static bool append(char **s, size_t *length, const char *data) { - size_t datalen = strlen(data); - char *extended = realloc(*s, *length + datalen + 1); - if (!extended) { - free(*s); - return false; - } - memcpy(extended + *length, data, datalen + 1); - *s = extended; - *length += datalen; - return true; -} - - -/*static int handle_debug(char *word[], char *word_eol[], void *userdata) { - xchat_printf(ph, "debug incoming: "); - for (size_t i = 1; word[i] != NULL && word[i][0] != '\0'; i++) { - xchat_printf(ph, ">%s< ", word[i]); - } - xchat_printf(ph, "\n"); - return XCHAT_EAT_NONE; -}*/ - -/** - * Called when a message is to be sent. - */ -static int handle_outgoing(char *word[], char *word_eol[], void *userdata) { - const char *own_nick; - // Encrypt the message if possible - const char *channel = xchat_get_info(ph, "channel"); - char *encrypted = fish_encrypt_for_nick(channel, word_eol[1]); - if (!encrypted) return XCHAT_EAT_NONE; - - // Display message - own_nick = xchat_get_info(ph, "nick"); - xchat_emit_print(ph, "Your Message", own_nick, word_eol[1], NULL); - - // Send message - xchat_commandf(ph, "PRIVMSG %s :+OK %s", channel, encrypted); - - free(encrypted); - return XCHAT_EAT_XCHAT; -} - -/** - * Called when a channel message or private message is received. - */ -static int handle_incoming(char *word[], char *word_eol[], void *userdata) { - const char *prefix; - const char *command; - const char *recipient; - const char *encrypted; - const char *peice; - char *sender_nick; - char *decrypted; - char *message; - size_t w; - size_t ew; - size_t uw; - size_t length; - - if (!irc_parse_message((const char **)word, &prefix, &command, &w)) - return XCHAT_EAT_NONE; - - // Topic (command 332) has an extra parameter - if (!strcmp(command, "332")) w++; - - // Look for encrypted data - ew; - for (ew = w+1; ew < XCHAT_MAX_WORDS-1; ew++) { - const char *s = (ew == w+1 ? word[ew]+1 : word[ew]); - if (strcmp(s, "+OK") == 0) goto has_encrypted_data; - } - return XCHAT_EAT_NONE; - has_encrypted_data: ; - // Extract sender nick and recipient nick/channel - sender_nick = irc_prefix_get_nick(prefix); - recipient = word[w]; - - // Try to decrypt with these (the keys are searched for in the key store) - encrypted = word[ew+1]; - decrypted = fish_decrypt_from_nick(recipient, encrypted); - if (!decrypted) decrypted = fish_decrypt_from_nick(sender_nick, encrypted); - - // Check for error - if (!decrypted) goto decrypt_error; - - // Build unecrypted message - message = NULL; - length = 0; - if (!append(&message, &length, "RECV")) goto decrypt_error; - - for (uw = 1; uw < XCHAT_MAX_WORDS; uw++) { - if (word[uw][0] != '\0' && !append(&message, &length, " ")) goto decrypt_error; - - if (uw == ew) { - // Add the encrypted data - peice = decrypted; - uw++; // Skip "OK+" - } else { - // Add unencrypted data (for example, a prefix from a bouncer or bot) - peice = (uw == w+1 ? word[uw]+1 : word[uw]); - } - - if (!append(&message, &length, peice)) goto decrypt_error; - } - free(decrypted); - - // Simulate unencrypted message - //xchat_printf(ph, "simulating: %s\n", message); - xchat_command(ph, message); - - free(message); - free(sender_nick); - return XCHAT_EAT_XCHAT; - - decrypt_error: - free(decrypted); - free(sender_nick); - return XCHAT_EAT_NONE; -} - -/** - * Command handler for /setkey - */ -static int handle_setkey(char *word[], char *word_eol[], void *userdata) { - const char *nick; - const char *key; - - // Check syntax - if (*word[2] == '\0') { - xchat_printf(ph, "%s\n", usage_setkey); - return XCHAT_EAT_XCHAT; - } - - if (*word[3] == '\0') { - // /setkey password - nick = xchat_get_info(ph, "channel"); - key = word_eol[2]; - } else { - // /setkey #channel password - nick = word[2]; - key = word_eol[3]; - } - - // Set password - if (keystore_store_key(nick, key)) { - xchat_printf(ph, "Stored key for %s\n", nick); - } else { - xchat_printf(ph, "\00305Failed to store key in blow.ini\n", nick, key); - } - - return XCHAT_EAT_XCHAT; -} - -/** - * Command handler for /delkey - */ -static int handle_delkey(char *word[], char *word_eol[], void *userdata) { - const char *nick; - - // Check syntax - if (*word[2] == '\0' || *word[3] != '\0') { - xchat_printf(ph, "%s\n", usage_delkey); - return XCHAT_EAT_XCHAT; - } - - nick = word_eol[2]; - - // Delete the given nick from the key store - if (keystore_delete_nick(nick)) { - xchat_printf(ph, "Deleted key for %s\n", nick); - } else { - xchat_printf(ph, "\00305Failed to delete key in blow.ini!\n", nick); - } - - return XCHAT_EAT_XCHAT; -} - -/** - * Returns the plugin name version information. - */ -void xchat_plugin_get_info(const char **name, const char **desc, - const char **version, void **reserved) { - *name = plugin_name; - *desc = plugin_desc; - *version = plugin_version; -} - -/** - * Plugin entry point. - */ -int xchat_plugin_init(xchat_plugin *plugin_handle, - const char **name, - const char **desc, - const char **version, - char *arg) { - ph = plugin_handle; - - /* Send our info to XChat */ - *name = plugin_name; - *desc = plugin_desc; - *version = plugin_version; - - /* Register commands */ - xchat_hook_command(ph, "SETKEY", XCHAT_PRI_NORM, handle_setkey, usage_setkey, NULL); - xchat_hook_command(ph, "DELKEY", XCHAT_PRI_NORM, handle_delkey, usage_delkey, NULL); - - /* Add handlers */ - xchat_hook_command(ph, "", XCHAT_PRI_NORM, handle_outgoing, NULL, NULL); - xchat_hook_server(ph, "NOTICE", XCHAT_PRI_NORM, handle_incoming, NULL); - xchat_hook_server(ph, "PRIVMSG", XCHAT_PRI_NORM, handle_incoming, NULL); - //xchat_hook_server(ph, "RAW LINE", XCHAT_PRI_NORM, handle_debug, NULL); - xchat_hook_server(ph, "TOPIC", XCHAT_PRI_NORM, handle_incoming, NULL); - xchat_hook_server(ph, "332", XCHAT_PRI_NORM, handle_incoming, NULL); - - xchat_printf (ph, "%s plugin loaded\n", plugin_name); - /* Return success */ - return 1; -} - -int xchat_plugin_deinit(void) { - xchat_printf (ph, "%s plugin unloaded\n", plugin_name); - return 1; -} diff --git a/plugins/fishlim/xchat_plugin.h b/plugins/fishlim/xchat_plugin.h deleted file mode 100644 index 40e21816..00000000 --- a/plugins/fishlim/xchat_plugin.h +++ /dev/null @@ -1 +0,0 @@ -gchar *get_config_filename(); -- cgit 1.4.1 From 81ed389e71cda96c1bd5935dd5f9cb98327870ce Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Fri, 25 Nov 2011 10:24:33 +0100 Subject: get in sync with fishlim upstream --- plugins/fishlim/Makefile | 6 +++--- plugins/fishlim/README | 2 +- plugins/fishlim/fish.c | 28 ++++++++++++++-------------- plugins/fishlim/keystore.c | 2 +- plugins/fishlim/keystore.h | 2 +- plugins/fishlim/plugin_xchat.c | 24 ++++++++++++++---------- plugins/fishlim/plugin_xchat.h | 30 ++++++++++++++++++++++++++++++ plugins/fishlim/test.c | 8 ++++++++ 8 files changed, 72 insertions(+), 30 deletions(-) (limited to 'plugins/fishlim') diff --git a/plugins/fishlim/Makefile b/plugins/fishlim/Makefile index 7a5081e4..a1832c84 100644 --- a/plugins/fishlim/Makefile +++ b/plugins/fishlim/Makefile @@ -4,17 +4,17 @@ OURCFLAGS = -Wall -Wextra -Wno-unused-parameter -std=c99 -pedantic `pkg-config - OURLINKFLAGS = `pkg-config --libs glib-2.0 libcrypto` $(CFLAGS) $(LDFLAGS) BASE_OBJECTS = irc.o fish.o keystore.o misc.o -PLUGIN_OBJECTS = $(BASE_OBJECTS) xchat_plugin.o +PLUGIN_OBJECTS = $(BASE_OBJECTS) plugin_xchat.o TEST_OBJECTS = $(BASE_OBJECTS) test.o all: fishlim.so test fish.o: fish.h keystore.h misc.h irc.o: irc.h -keystore.o: keystore.h irc.h fish.h misc.h +keystore.o: keystore.h irc.h fish.h misc.h plugin_xchat.h misc.o: misc.h test.o: fish.h -xchat_plugin.o: fish.h irc.h keystore.h +plugin_xchat.o: fish.h irc.h keystore.h plugin_xchat.h .c.o: $(CC) $(OURCFLAGS) -c $< -o $@ diff --git a/plugins/fishlim/README b/plugins/fishlim/README index 9c5cd5fc..4f315b44 100644 --- a/plugins/fishlim/README +++ b/plugins/fishlim/README @@ -2,7 +2,7 @@ FiSHLiM - http://fishlim.slbdata.se/ + http://fishlim.kodafritt.se/ FiSHLiM is an XChat plugin for FiSH IRC encryption. It's my attempt at making diff --git a/plugins/fishlim/fish.c b/plugins/fishlim/fish.c index 0d92ecc9..cb977d7f 100644 --- a/plugins/fishlim/fish.c +++ b/plugins/fishlim/fish.c @@ -58,14 +58,14 @@ static const signed char fish_unbase64[256] = { char *fish_encrypt(const char *key, size_t keylen, const char *message) { BF_KEY bfkey; - size_t messagelen; - size_t i; - int j; - char *encrypted; - char *end; - unsigned char bit; - unsigned char word; - unsigned char d; + size_t messagelen; + size_t i; + int j; + char *encrypted; + char *end; + unsigned char bit; + unsigned char word; + unsigned char d; BF_set_key(&bfkey, keylen, (const unsigned char*)key); messagelen = strlen(message); @@ -111,12 +111,12 @@ char *fish_encrypt(const char *key, size_t keylen, const char *message) { char *fish_decrypt(const char *key, size_t keylen, const char *data) { BF_KEY bfkey; - size_t i; - char *decrypted; - char *end; - unsigned char bit; - unsigned char word; - unsigned char d; + size_t i; + char *decrypted; + char *end; + unsigned char bit; + unsigned char word; + unsigned char d; BF_set_key(&bfkey, keylen, (const unsigned char*)key); decrypted = malloc(strlen(data)+1); diff --git a/plugins/fishlim/keystore.c b/plugins/fishlim/keystore.c index ff30faa7..ce029a2e 100644 --- a/plugins/fishlim/keystore.c +++ b/plugins/fishlim/keystore.c @@ -29,7 +29,7 @@ #include "fish.h" #include "misc.h" #include "keystore.h" -#include "xchat_plugin.h" +#include "plugin_xchat.h" static char *keystore_password = NULL; diff --git a/plugins/fishlim/keystore.h b/plugins/fishlim/keystore.h index e6c527c7..b0c1c69c 100644 --- a/plugins/fishlim/keystore.h +++ b/plugins/fishlim/keystore.h @@ -33,7 +33,7 @@ #include char *keystore_get_key(const char *nick); -int keystore_store_key(const char *nick, const char *key); +bool keystore_store_key(const char *nick, const char *key); bool keystore_delete_nick(const char *nick); void keystore_secure_free(void *ptr, size_t size); diff --git a/plugins/fishlim/plugin_xchat.c b/plugins/fishlim/plugin_xchat.c index dd410548..ba0e1280 100644 --- a/plugins/fishlim/plugin_xchat.c +++ b/plugins/fishlim/plugin_xchat.c @@ -27,7 +27,11 @@ #include // #pragma GCC visibility push(default) +#ifdef _MSC_VER #include "xchat-plugin.h" +#else +#include +#endif #define XCHAT_MAX_WORDS 32 // #pragma GCC visibility pop @@ -40,7 +44,7 @@ static const char plugin_name[] = "FiSHLiM"; static const char plugin_desc[] = "Encryption plugin for the FiSH protocol. Less is More!"; -static const char plugin_version[] = "0.0.13"; +static const char plugin_version[] = "0.0.14"; static const char usage_setkey[] = "Usage: SETKEY [] , sets the key for a channel or nick"; static const char usage_delkey[] = "Usage: DELKEY , deletes the key for a channel or nick"; @@ -112,7 +116,7 @@ static int handle_incoming(char *word[], char *word_eol[], void *userdata) { const char *recipient; const char *encrypted; const char *peice; - char *sender_nick; + char *sender_nick; char *decrypted; char *message; size_t w; @@ -127,7 +131,6 @@ static int handle_incoming(char *word[], char *word_eol[], void *userdata) { if (!strcmp(command, "332")) w++; // Look for encrypted data - ew; for (ew = w+1; ew < XCHAT_MAX_WORDS-1; ew++) { const char *s = (ew == w+1 ? word[ew]+1 : word[ew]); if (strcmp(s, "+OK") == 0) goto has_encrypted_data; @@ -242,7 +245,7 @@ static int handle_delkey(char *word[], char *word_eol[], void *userdata) { * Returns the plugin name version information. */ void xchat_plugin_get_info(const char **name, const char **desc, - const char **version, void **reserved) { + const char **version, void **reserved) { *name = plugin_name; *desc = plugin_desc; *version = plugin_version; @@ -252,10 +255,10 @@ void xchat_plugin_get_info(const char **name, const char **desc, * Plugin entry point. */ int xchat_plugin_init(xchat_plugin *plugin_handle, - const char **name, - const char **desc, - const char **version, - char *arg) { + const char **name, + const char **desc, + const char **version, + char *arg) { ph = plugin_handle; /* Send our info to XChat */ @@ -275,12 +278,13 @@ int xchat_plugin_init(xchat_plugin *plugin_handle, xchat_hook_server(ph, "TOPIC", XCHAT_PRI_NORM, handle_incoming, NULL); xchat_hook_server(ph, "332", XCHAT_PRI_NORM, handle_incoming, NULL); - xchat_printf (ph, "%s plugin loaded\n", plugin_name); + xchat_printf(ph, "%s plugin loaded\n", plugin_name); /* Return success */ return 1; } int xchat_plugin_deinit(void) { - xchat_printf (ph, "%s plugin unloaded\n", plugin_name); + xchat_printf(ph, "%s plugin unloaded\n", plugin_name); return 1; } + diff --git a/plugins/fishlim/plugin_xchat.h b/plugins/fishlim/plugin_xchat.h index 40e21816..0243e81f 100644 --- a/plugins/fishlim/plugin_xchat.h +++ b/plugins/fishlim/plugin_xchat.h @@ -1 +1,31 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#ifndef XCHAT_PLUGIN_H +#define XCHAT_PLUGIN_H + gchar *get_config_filename(); + +#endif + diff --git a/plugins/fishlim/test.c b/plugins/fishlim/test.c index 2032496a..3511bbb1 100644 --- a/plugins/fishlim/test.c +++ b/plugins/fishlim/test.c @@ -22,10 +22,18 @@ */ +#include #include #include #include "fish.h" +// We can't use the XChat plugin API from here... +gchar *get_config_filename() { + const gchar *homedir = g_get_home_dir(); + return g_build_filename(homedir, ".xchat2", "blow.ini", NULL); +} + + static int decrypt(int nick_count, char *nicks[]) { char encrypted[8192]; while (fgets(encrypted, sizeof(encrypted), stdin)) { -- cgit 1.4.1 From 090974960eeb7b70def20e8bb189e7380a2b932b Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Fri, 25 Nov 2011 10:26:59 +0100 Subject: rename fishlim main file in makefile too --- plugins/fishlim/makefile.mak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins/fishlim') diff --git a/plugins/fishlim/makefile.mak b/plugins/fishlim/makefile.mak index decf9bb4..4d0be66b 100644 --- a/plugins/fishlim/makefile.mak +++ b/plugins/fishlim/makefile.mak @@ -9,7 +9,7 @@ fish.obj \ irc.obj \ keystore.obj \ misc.obj \ -xchat_plugin.obj +plugin_xchat.obj all: $(FISHLIM_OBJECTS) fishlim.def link $(LDFLAGS) $(LIBS) /dll /out:xcfishlim.dll /def:fishlim.def $(FISHLIM_OBJECTS) -- cgit 1.4.1 From 18404054b0e7bad84c552530fa5771f38469f2d3 Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Tue, 3 Jan 2012 16:38:40 +0100 Subject: sync with fishlim head --- plugins/fishlim/Makefile | 2 +- plugins/fishlim/keystore.c | 4 ++-- plugins/fishlim/plugin_xchat.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'plugins/fishlim') diff --git a/plugins/fishlim/Makefile b/plugins/fishlim/Makefile index a1832c84..3f0e93d2 100644 --- a/plugins/fishlim/Makefile +++ b/plugins/fishlim/Makefile @@ -23,7 +23,7 @@ fishlim.so: $(PLUGIN_OBJECTS) $(CC) -shared $(OURLINKFLAGS) $(PLUGIN_OBJECTS) -o $@ test: $(TEST_OBJECTS) - $(CC) $(OURLINKFLAGS) $(TEST_OBJECTS) -o $@ + $(CC) $(TEST_OBJECTS) -o $@ $(OURLINKFLAGS) .PHONY: all clean distclean install uninstall diff --git a/plugins/fishlim/keystore.c b/plugins/fishlim/keystore.c index ce029a2e..d97107fd 100644 --- a/plugins/fishlim/keystore.c +++ b/plugins/fishlim/keystore.c @@ -164,8 +164,8 @@ bool keystore_store_key(const char *nick, const char *key) { encrypted = fish_encrypt(password, strlen(password), key); if (!encrypted) goto end; - // Prepend "OK+ " - wrapped = g_strconcat("OK+ ", encrypted, NULL); + // Prepend "+OK " + wrapped = g_strconcat("+OK ", encrypted, NULL); g_free(encrypted); // Store encrypted in file diff --git a/plugins/fishlim/plugin_xchat.c b/plugins/fishlim/plugin_xchat.c index ba0e1280..01f5d747 100644 --- a/plugins/fishlim/plugin_xchat.c +++ b/plugins/fishlim/plugin_xchat.c @@ -44,7 +44,7 @@ static const char plugin_name[] = "FiSHLiM"; static const char plugin_desc[] = "Encryption plugin for the FiSH protocol. Less is More!"; -static const char plugin_version[] = "0.0.14"; +static const char plugin_version[] = "0.0.15"; static const char usage_setkey[] = "Usage: SETKEY [] , sets the key for a channel or nick"; static const char usage_delkey[] = "Usage: DELKEY , deletes the key for a channel or nick"; -- cgit 1.4.1 From 9d91db6be80b7b25fc6b3b89c8ec6b0163f217a1 Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Fri, 16 Mar 2012 00:17:03 +0100 Subject: sync with fishlim head --- plugins/fishlim/plugin_xchat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins/fishlim') diff --git a/plugins/fishlim/plugin_xchat.c b/plugins/fishlim/plugin_xchat.c index 01f5d747..8bbcf3e2 100644 --- a/plugins/fishlim/plugin_xchat.c +++ b/plugins/fishlim/plugin_xchat.c @@ -133,7 +133,7 @@ static int handle_incoming(char *word[], char *word_eol[], void *userdata) { // Look for encrypted data for (ew = w+1; ew < XCHAT_MAX_WORDS-1; ew++) { const char *s = (ew == w+1 ? word[ew]+1 : word[ew]); - if (strcmp(s, "+OK") == 0) goto has_encrypted_data; + if (strcmp(s, "+OK") == 0 || strcmp(s, "mcps") == 0) goto has_encrypted_data; } return XCHAT_EAT_NONE; has_encrypted_data: ; -- cgit 1.4.1 From 21f1427cc6f6201444566ae20a92b7a9aa6b5eaa Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Fri, 4 May 2012 19:29:02 +0200 Subject: sync with fishlim head --- plugins/fishlim/LICENSE | 2 +- plugins/fishlim/fish.c | 2 +- plugins/fishlim/fish.h | 2 +- plugins/fishlim/irc.c | 2 +- plugins/fishlim/irc.h | 2 +- plugins/fishlim/keystore.c | 2 +- plugins/fishlim/keystore.h | 2 +- plugins/fishlim/misc.c | 2 +- plugins/fishlim/misc.h | 2 +- plugins/fishlim/plugin_xchat.c | 2 +- plugins/fishlim/plugin_xchat.h | 2 +- plugins/fishlim/test.c | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) (limited to 'plugins/fishlim') diff --git a/plugins/fishlim/LICENSE b/plugins/fishlim/LICENSE index 427f2631..a3e0474a 100644 --- a/plugins/fishlim/LICENSE +++ b/plugins/fishlim/LICENSE @@ -1,5 +1,5 @@ -Copyright (c) 2010-2011 Samuel Lidén Borell +Copyright (c) 2010-2011 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/fish.c b/plugins/fishlim/fish.c index cb977d7f..d4f7b118 100644 --- a/plugins/fishlim/fish.c +++ b/plugins/fishlim/fish.c @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/fish.h b/plugins/fishlim/fish.h index d4057a7b..5a4e85d0 100644 --- a/plugins/fishlim/fish.h +++ b/plugins/fishlim/fish.h @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/irc.c b/plugins/fishlim/irc.c index a96c4c91..3586921b 100644 --- a/plugins/fishlim/irc.c +++ b/plugins/fishlim/irc.c @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/irc.h b/plugins/fishlim/irc.h index 0c1e7463..58a58c83 100644 --- a/plugins/fishlim/irc.h +++ b/plugins/fishlim/irc.h @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/keystore.c b/plugins/fishlim/keystore.c index d97107fd..e628c289 100644 --- a/plugins/fishlim/keystore.c +++ b/plugins/fishlim/keystore.c @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/keystore.h b/plugins/fishlim/keystore.h index b0c1c69c..edf54992 100644 --- a/plugins/fishlim/keystore.h +++ b/plugins/fishlim/keystore.h @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/misc.c b/plugins/fishlim/misc.c index 32fe3595..2b78961d 100644 --- a/plugins/fishlim/misc.c +++ b/plugins/fishlim/misc.c @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/misc.h b/plugins/fishlim/misc.h index 0adc928c..ee4fc5b8 100644 --- a/plugins/fishlim/misc.h +++ b/plugins/fishlim/misc.h @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/plugin_xchat.c b/plugins/fishlim/plugin_xchat.c index 8bbcf3e2..80e6c8cd 100644 --- a/plugins/fishlim/plugin_xchat.c +++ b/plugins/fishlim/plugin_xchat.c @@ -1,6 +1,6 @@ /* - Copyright (c) 2010-2011 Samuel Lidén Borell + Copyright (c) 2010-2011 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/plugin_xchat.h b/plugins/fishlim/plugin_xchat.h index 0243e81f..d606526d 100644 --- a/plugins/fishlim/plugin_xchat.h +++ b/plugins/fishlim/plugin_xchat.h @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/test.c b/plugins/fishlim/test.c index 3511bbb1..9e6a1f5f 100644 --- a/plugins/fishlim/test.c +++ b/plugins/fishlim/test.c @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal -- cgit 1.4.1 From 5a50da6f827f96f12739a50d8917d43e28191551 Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Sun, 13 May 2012 14:45:32 +0200 Subject: Sync with FiSHLiM HEAD --- plugins/fishlim/README | 1 + plugins/fishlim/plugin_xchat.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'plugins/fishlim') diff --git a/plugins/fishlim/README b/plugins/fishlim/README index 4f315b44..00d7f682 100644 --- a/plugins/fishlim/README +++ b/plugins/fishlim/README @@ -26,6 +26,7 @@ Not working: * Password-protected key storage * Topic encryption * Remote exploitation (hopefully!) + * Plaintext content that contain +OK is decrypted twice Commands diff --git a/plugins/fishlim/plugin_xchat.c b/plugins/fishlim/plugin_xchat.c index 80e6c8cd..5e261116 100644 --- a/plugins/fishlim/plugin_xchat.c +++ b/plugins/fishlim/plugin_xchat.c @@ -44,7 +44,7 @@ static const char plugin_name[] = "FiSHLiM"; static const char plugin_desc[] = "Encryption plugin for the FiSH protocol. Less is More!"; -static const char plugin_version[] = "0.0.15"; +static const char plugin_version[] = "0.0.16"; static const char usage_setkey[] = "Usage: SETKEY [] , sets the key for a channel or nick"; static const char usage_delkey[] = "Usage: DELKEY , deletes the key for a channel or nick"; @@ -161,9 +161,15 @@ static int handle_incoming(char *word[], char *word_eol[], void *userdata) { // Add the encrypted data peice = decrypted; uw++; // Skip "OK+" + + if (ew == w+1) { + // Prefix with colon, which gets stripped out otherwise + if (!append(&message, &length, ":")) goto decrypt_error; + } + } else { // Add unencrypted data (for example, a prefix from a bouncer or bot) - peice = (uw == w+1 ? word[uw]+1 : word[uw]); + peice = word[uw]; } if (!append(&message, &length, peice)) goto decrypt_error; -- cgit 1.4.1 From a673109c495916f4198b216a0e52aa9d6b986a8f Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Sun, 10 Jun 2012 14:19:40 +0200 Subject: Add all plugins to solution except WMPA --- plugins/checksum/checksum.def | 3 + plugins/checksum/checksum.vcxproj | 65 ++++++++++++++++++ plugins/checksum/checksum.vcxproj.filters | 23 +++++++ plugins/dns/dns.def | 3 + plugins/dns/dns.vcxproj | 69 +++++++++++++++++++ plugins/dns/dns.vcxproj.filters | 35 ++++++++++ plugins/doat/doat.def | 3 + plugins/doat/doat.vcxproj | 63 +++++++++++++++++ plugins/doat/doat.vcxproj.filters | 23 +++++++ plugins/exec/exec.def | 3 + plugins/exec/exec.vcxproj | 63 +++++++++++++++++ plugins/exec/exec.vcxproj.filters | 23 +++++++ plugins/fishlim/fishlim.def | 4 ++ plugins/fishlim/fishlim.vcxproj | 77 +++++++++++++++++++++ plugins/fishlim/fishlim.vcxproj.filters | 59 ++++++++++++++++ plugins/lua/lua.vcxproj | 6 +- plugins/mpcinfo/mpcinfo.def | 3 + plugins/mpcinfo/mpcinfo.vcxproj | 63 +++++++++++++++++ plugins/mpcinfo/mpcinfo.vcxproj.filters | 23 +++++++ plugins/upd/upd.def | 3 + plugins/upd/upd.vcxproj | 65 ++++++++++++++++++ plugins/upd/upd.vcxproj.filters | 23 +++++++ plugins/winamp/winamp.def | 3 + plugins/winamp/winamp.vcxproj | 63 +++++++++++++++++ plugins/winamp/winamp.vcxproj.filters | 23 +++++++ plugins/winsys/winsys.def | 3 + plugins/winsys/winsys.vcxproj | 66 ++++++++++++++++++ plugins/winsys/winsys.vcxproj.filters | 23 +++++++ plugins/xsasl/xsasl.def | 3 + plugins/xsasl/xsasl.vcxproj | 65 ++++++++++++++++++ plugins/xsasl/xsasl.vcxproj.filters | 23 +++++++ plugins/xtray/xtray.def | 3 + plugins/xtray/xtray.vcxproj | 91 +++++++++++++++++++++++++ plugins/xtray/xtray.vcxproj.filters | 109 ++++++++++++++++++++++++++++++ src/version/version.vcxproj | 3 +- win32/xchat.sln | 66 ++++++++++++++++++ 36 files changed, 1244 insertions(+), 2 deletions(-) create mode 100644 plugins/checksum/checksum.def create mode 100644 plugins/checksum/checksum.vcxproj create mode 100644 plugins/checksum/checksum.vcxproj.filters create mode 100644 plugins/dns/dns.def create mode 100644 plugins/dns/dns.vcxproj create mode 100644 plugins/dns/dns.vcxproj.filters create mode 100644 plugins/doat/doat.def create mode 100644 plugins/doat/doat.vcxproj create mode 100644 plugins/doat/doat.vcxproj.filters create mode 100644 plugins/exec/exec.def create mode 100644 plugins/exec/exec.vcxproj create mode 100644 plugins/exec/exec.vcxproj.filters create mode 100644 plugins/fishlim/fishlim.def create mode 100644 plugins/fishlim/fishlim.vcxproj create mode 100644 plugins/fishlim/fishlim.vcxproj.filters create mode 100644 plugins/mpcinfo/mpcinfo.def create mode 100644 plugins/mpcinfo/mpcinfo.vcxproj create mode 100644 plugins/mpcinfo/mpcinfo.vcxproj.filters create mode 100644 plugins/upd/upd.def create mode 100644 plugins/upd/upd.vcxproj create mode 100644 plugins/upd/upd.vcxproj.filters create mode 100644 plugins/winamp/winamp.def create mode 100644 plugins/winamp/winamp.vcxproj create mode 100644 plugins/winamp/winamp.vcxproj.filters create mode 100644 plugins/winsys/winsys.def create mode 100644 plugins/winsys/winsys.vcxproj create mode 100644 plugins/winsys/winsys.vcxproj.filters create mode 100644 plugins/xsasl/xsasl.def create mode 100644 plugins/xsasl/xsasl.vcxproj create mode 100644 plugins/xsasl/xsasl.vcxproj.filters create mode 100644 plugins/xtray/xtray.def create mode 100644 plugins/xtray/xtray.vcxproj create mode 100644 plugins/xtray/xtray.vcxproj.filters (limited to 'plugins/fishlim') diff --git a/plugins/checksum/checksum.def b/plugins/checksum/checksum.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/checksum/checksum.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/checksum/checksum.vcxproj b/plugins/checksum/checksum.vcxproj new file mode 100644 index 00000000..cbfa2a2d --- /dev/null +++ b/plugins/checksum/checksum.vcxproj @@ -0,0 +1,65 @@ + + + + + Release + Win32 + + + + {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91} + Win32Proj + checksum + + + + DynamicLibrary + false + true + MultiByte + WDK7 + + + + + + + + + + + false + xcchecksum + + + + Level1 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;CHECKSUM_EXPORTS;%(PreprocessorDefinitions) + $(DepsRoot)\include;..;%(AdditionalIncludeDirectories) + true + + + Windows + true + true + true + checksum.def + $(DepsRoot)\lib;%(AdditionalLibraryDirectories) + $(DepLibs);%(AdditionalDependencies) + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/checksum/checksum.vcxproj.filters b/plugins/checksum/checksum.vcxproj.filters new file mode 100644 index 00000000..e6ef5e81 --- /dev/null +++ b/plugins/checksum/checksum.vcxproj.filters @@ -0,0 +1,23 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + + + Resource Files + + + \ No newline at end of file diff --git a/plugins/dns/dns.def b/plugins/dns/dns.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/dns/dns.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/dns/dns.vcxproj b/plugins/dns/dns.vcxproj new file mode 100644 index 00000000..b98c778f --- /dev/null +++ b/plugins/dns/dns.vcxproj @@ -0,0 +1,69 @@ + + + + + Release + Win32 + + + + {3786FA8C-3E76-45E3-984E-FCCFF44729C9} + Win32Proj + dns + + + + DynamicLibrary + false + true + MultiByte + WDK7 + + + + + + + + + + + false + xcdns + + + + Level1 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;DNS_EXPORTS;%(PreprocessorDefinitions) + ..;%(AdditionalIncludeDirectories) + true + + + Windows + true + true + true + $(DepsRoot)\lib;%(AdditionalLibraryDirectories) + $(DepLibs);%(AdditionalDependencies) + dns.def + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/dns/dns.vcxproj.filters b/plugins/dns/dns.vcxproj.filters new file mode 100644 index 00000000..a49dc1e2 --- /dev/null +++ b/plugins/dns/dns.vcxproj.filters @@ -0,0 +1,35 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Resource Files + + + + + Source Files + + + Source Files + + + + + Header Files + + + \ No newline at end of file diff --git a/plugins/doat/doat.def b/plugins/doat/doat.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/doat/doat.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/doat/doat.vcxproj b/plugins/doat/doat.vcxproj new file mode 100644 index 00000000..f0168a6b --- /dev/null +++ b/plugins/doat/doat.vcxproj @@ -0,0 +1,63 @@ + + + + + Release + Win32 + + + + {4980AF24-9D42-427D-A8E6-0DF3B97C455D} + Win32Proj + doat + + + + DynamicLibrary + false + true + MultiByte + WDK7 + + + + + + + + + + + false + xcdoat + + + + Level1 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;DOAT_EXPORTS;%(PreprocessorDefinitions) + ..;%(AdditionalIncludeDirectories) + true + + + Windows + true + true + true + doat.def + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/doat/doat.vcxproj.filters b/plugins/doat/doat.vcxproj.filters new file mode 100644 index 00000000..43ea8307 --- /dev/null +++ b/plugins/doat/doat.vcxproj.filters @@ -0,0 +1,23 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + + + Resource Files + + + \ No newline at end of file diff --git a/plugins/exec/exec.def b/plugins/exec/exec.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/exec/exec.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/exec/exec.vcxproj b/plugins/exec/exec.vcxproj new file mode 100644 index 00000000..cef4049c --- /dev/null +++ b/plugins/exec/exec.vcxproj @@ -0,0 +1,63 @@ + + + + + Release + Win32 + + + + {17E4BE39-76F7-4A06-AD21-EFD0C5091F76} + Win32Proj + exec + + + + DynamicLibrary + false + true + MultiByte + WDK7 + + + + + + + + + + + false + xcexec + + + + Level1 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;EXEC_EXPORTS;%(PreprocessorDefinitions) + true + ..;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + exec.def + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/exec/exec.vcxproj.filters b/plugins/exec/exec.vcxproj.filters new file mode 100644 index 00000000..f800df93 --- /dev/null +++ b/plugins/exec/exec.vcxproj.filters @@ -0,0 +1,23 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Resource Files + + + + + Source Files + + + \ No newline at end of file diff --git a/plugins/fishlim/fishlim.def b/plugins/fishlim/fishlim.def new file mode 100644 index 00000000..5797636b --- /dev/null +++ b/plugins/fishlim/fishlim.def @@ -0,0 +1,4 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit +xchat_plugin_get_info diff --git a/plugins/fishlim/fishlim.vcxproj b/plugins/fishlim/fishlim.vcxproj new file mode 100644 index 00000000..1cf5293f --- /dev/null +++ b/plugins/fishlim/fishlim.vcxproj @@ -0,0 +1,77 @@ + + + + + Release + Win32 + + + + {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E} + Win32Proj + fishlim + + + + DynamicLibrary + false + true + MultiByte + WDK7 + + + + + + + + + + + false + xcfishlim + + + + Level1 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;FISHLIM_EXPORTS;%(PreprocessorDefinitions) + true + $(DepsRoot)\include;$(Glib);..;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + fishlim.def + $(DepsRoot)\lib;%(AdditionalLibraryDirectories) + $(DepLibs);%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/fishlim/fishlim.vcxproj.filters b/plugins/fishlim/fishlim.vcxproj.filters new file mode 100644 index 00000000..72e9f017 --- /dev/null +++ b/plugins/fishlim/fishlim.vcxproj.filters @@ -0,0 +1,59 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Resource Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/plugins/lua/lua.vcxproj b/plugins/lua/lua.vcxproj index d78a1e35..69a8e4ea 100644 --- a/plugins/lua/lua.vcxproj +++ b/plugins/lua/lua.vcxproj @@ -33,7 +33,7 @@ - Level3 + Level1 MaxSpeed @@ -59,7 +59,11 @@ WIN32;NDEBUG;_WINDOWS;_USRDLL;$(OwnFlags);snprintf=g_snprintf;%(PreprocessorDefinitions) + true + + lua.def + diff --git a/plugins/mpcinfo/mpcinfo.def b/plugins/mpcinfo/mpcinfo.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/mpcinfo/mpcinfo.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/mpcinfo/mpcinfo.vcxproj b/plugins/mpcinfo/mpcinfo.vcxproj new file mode 100644 index 00000000..04182d50 --- /dev/null +++ b/plugins/mpcinfo/mpcinfo.vcxproj @@ -0,0 +1,63 @@ + + + + + Release + Win32 + + + + {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC} + Win32Proj + mpcinfo + + + + DynamicLibrary + false + true + MultiByte + WDK7 + + + + + + + + + + + false + xcmpcinfo + + + + Level1 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;MPCINFO_EXPORTS;%(PreprocessorDefinitions) + true + ..;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + mpcinfo.def + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/mpcinfo/mpcinfo.vcxproj.filters b/plugins/mpcinfo/mpcinfo.vcxproj.filters new file mode 100644 index 00000000..7e22eb30 --- /dev/null +++ b/plugins/mpcinfo/mpcinfo.vcxproj.filters @@ -0,0 +1,23 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Resource Files + + + + + Source Files + + + \ No newline at end of file diff --git a/plugins/upd/upd.def b/plugins/upd/upd.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/upd/upd.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/upd/upd.vcxproj b/plugins/upd/upd.vcxproj new file mode 100644 index 00000000..ee00dc1a --- /dev/null +++ b/plugins/upd/upd.vcxproj @@ -0,0 +1,65 @@ + + + + + Release + Win32 + + + + {461DC24A-A410-4171-8C02-CCDBF3702C2A} + Win32Proj + upd + + + + DynamicLibrary + false + true + MultiByte + WDK7 + + + + + + + + + + + false + xcupd + + + + Level1 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;UPD_EXPORTS;%(PreprocessorDefinitions) + true + ..;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + upd.def + $(DepLibs);%(AdditionalDependencies) + $(DepsRoot)\lib;%(AdditionalLibraryDirectories) + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/upd/upd.vcxproj.filters b/plugins/upd/upd.vcxproj.filters new file mode 100644 index 00000000..e3d7397e --- /dev/null +++ b/plugins/upd/upd.vcxproj.filters @@ -0,0 +1,23 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Resource Files + + + + + Source Files + + + \ No newline at end of file diff --git a/plugins/winamp/winamp.def b/plugins/winamp/winamp.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/winamp/winamp.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/winamp/winamp.vcxproj b/plugins/winamp/winamp.vcxproj new file mode 100644 index 00000000..3924b8b2 --- /dev/null +++ b/plugins/winamp/winamp.vcxproj @@ -0,0 +1,63 @@ + + + + + Release + Win32 + + + + {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE} + Win32Proj + winamp + + + + DynamicLibrary + false + true + MultiByte + WDK7 + + + + + + + + + + + false + xcwinamp + + + + Level1 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;WINAMP_EXPORTS;%(PreprocessorDefinitions) + true + ..;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + winamp.def + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/winamp/winamp.vcxproj.filters b/plugins/winamp/winamp.vcxproj.filters new file mode 100644 index 00000000..1a800a33 --- /dev/null +++ b/plugins/winamp/winamp.vcxproj.filters @@ -0,0 +1,23 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Resource Files + + + + + Source Files + + + \ No newline at end of file diff --git a/plugins/winsys/winsys.def b/plugins/winsys/winsys.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/winsys/winsys.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/winsys/winsys.vcxproj b/plugins/winsys/winsys.vcxproj new file mode 100644 index 00000000..1466e8e7 --- /dev/null +++ b/plugins/winsys/winsys.vcxproj @@ -0,0 +1,66 @@ + + + + + Release + Win32 + + + + {6C0CA980-97C5-427A-BE61-5BCECAFABBDA} + Win32Proj + winsys + + + + DynamicLibrary + false + true + Unicode + WDK7 + + + + + + + + + + + false + xcwinsys + + + + Level1 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;WINSYS_EXPORTS;%(PreprocessorDefinitions) + ..;%(AdditionalIncludeDirectories) + true + false + + + Windows + true + true + true + winsys.def + wbemuuid.lib;vccomsup.lib;%(AdditionalDependencies) + comsupp.lib + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/winsys/winsys.vcxproj.filters b/plugins/winsys/winsys.vcxproj.filters new file mode 100644 index 00000000..6e5b445c --- /dev/null +++ b/plugins/winsys/winsys.vcxproj.filters @@ -0,0 +1,23 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Resource Files + + + + + Source Files + + + \ No newline at end of file diff --git a/plugins/xsasl/xsasl.def b/plugins/xsasl/xsasl.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/xsasl/xsasl.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/xsasl/xsasl.vcxproj b/plugins/xsasl/xsasl.vcxproj new file mode 100644 index 00000000..9bb8fb24 --- /dev/null +++ b/plugins/xsasl/xsasl.vcxproj @@ -0,0 +1,65 @@ + + + + + Release + Win32 + + + + {18871EBA-AC85-4652-8919-EB8064B9A714} + Win32Proj + xsasl + + + + DynamicLibrary + false + true + MultiByte + WDK7 + + + + + + + + + + + false + xcxsasl + + + + Level1 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;XSASL_EXPORTS;%(PreprocessorDefinitions) + $(Glib);..;%(AdditionalIncludeDirectories) + true + + + Windows + true + true + true + xsasl.def + $(DepsRoot)\lib;%(AdditionalLibraryDirectories) + $(DepLibs);%(AdditionalDependencies) + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/xsasl/xsasl.vcxproj.filters b/plugins/xsasl/xsasl.vcxproj.filters new file mode 100644 index 00000000..b01aa8eb --- /dev/null +++ b/plugins/xsasl/xsasl.vcxproj.filters @@ -0,0 +1,23 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Resource Files + + + + + Source Files + + + \ No newline at end of file diff --git a/plugins/xtray/xtray.def b/plugins/xtray/xtray.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/xtray/xtray.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/xtray/xtray.vcxproj b/plugins/xtray/xtray.vcxproj new file mode 100644 index 00000000..1dc97f30 --- /dev/null +++ b/plugins/xtray/xtray.vcxproj @@ -0,0 +1,91 @@ + + + + + Release + Win32 + + + + {3024CF36-85E5-4E00-9608-7002E2C7EF14} + Win32Proj + xtray + + + + DynamicLibrary + false + true + Unicode + WDK7 + + + + + + + + + + + false + + + + Level1 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;XTRAY_EXPORTS;_STL70_;_STATIC_CPPLIB;%(PreprocessorDefinitions) + true + ..;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + xtray.def + ntstc_msvcrt.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/xtray/xtray.vcxproj.filters b/plugins/xtray/xtray.vcxproj.filters new file mode 100644 index 00000000..3b909983 --- /dev/null +++ b/plugins/xtray/xtray.vcxproj.filters @@ -0,0 +1,109 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {448b49a5-e68b-451e-bfbc-0855da024b2e} + + + {8345128a-0635-43d6-9115-a85ad9c77ee2} + + + + + Resource Files + + + Resource Files\bitmaps + + + Resource Files\icons + + + Resource Files\icons + + + Resource Files\icons + + + Resource Files\icons + + + Resource Files\icons + + + Resource Files\icons + + + Resource Files\icons + + + Resource Files\icons + + + Resource Files\icons + + + Resource Files\icons + + + + + Resource Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/src/version/version.vcxproj b/src/version/version.vcxproj index e6d510f8..26c13458 100644 --- a/src/version/version.vcxproj +++ b/src/version/version.vcxproj @@ -32,13 +32,14 @@ - Level3 + Level1 MaxSpeed true true WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true Console diff --git a/win32/xchat.sln b/win32/xchat.sln index 7aa6b029..ecb1f859 100644 --- a/win32/xchat.sln +++ b/win32/xchat.sln @@ -34,20 +34,53 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcl", "..\plugins\tcl\tcl.vcxproj", "{2773666A-8CFC-4533-A043-EAD59F16A1C7}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "perl-512", "..\plugins\perl\perl-512.vcxproj", "{987E9374-98A1-44BA-946F-D3472D7A7055}" + ProjectSection(ProjectDependencies) = postProject + {98B56DF9-E4F1-4696-A565-5F7823CF214D} = {98B56DF9-E4F1-4696-A565-5F7823CF214D} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "perl-514", "..\plugins\perl\perl-514.vcxproj", "{C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0}" ProjectSection(ProjectDependencies) = postProject {987E9374-98A1-44BA-946F-D3472D7A7055} = {987E9374-98A1-44BA-946F-D3472D7A7055} + {98B56DF9-E4F1-4696-A565-5F7823CF214D} = {98B56DF9-E4F1-4696-A565-5F7823CF214D} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "perl-516", "..\plugins\perl\perl-516.vcxproj", "{58654438-F674-42F7-88FA-73EF90AD80B1}" ProjectSection(ProjectDependencies) = postProject {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0} = {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0} + {98B56DF9-E4F1-4696-A565-5F7823CF214D} = {98B56DF9-E4F1-4696-A565-5F7823CF214D} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "..\plugins\python\python.vcxproj", "{19C52A0A-A790-409E-A28A-9745FF990F5C}" + ProjectSection(ProjectDependencies) = postProject + {98B56DF9-E4F1-4696-A565-5F7823CF214D} = {98B56DF9-E4F1-4696-A565-5F7823CF214D} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua", "..\plugins\lua\lua.vcxproj", "{646B4316-C8B8-4DB6-B6AE-E586929E5729}" + ProjectSection(ProjectDependencies) = postProject + {98B56DF9-E4F1-4696-A565-5F7823CF214D} = {98B56DF9-E4F1-4696-A565-5F7823CF214D} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doat", "..\plugins\doat\doat.vcxproj", "{4980AF24-9D42-427D-A8E6-0DF3B97C455D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checksum", "..\plugins\checksum\checksum.vcxproj", "{5EF7F47D-D09C-43C4-BF64-B28B11A0FF91}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dns", "..\plugins\dns\dns.vcxproj", "{3786FA8C-3E76-45E3-984E-FCCFF44729C9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "exec", "..\plugins\exec\exec.vcxproj", "{17E4BE39-76F7-4A06-AD21-EFD0C5091F76}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fishlim", "..\plugins\fishlim\fishlim.vcxproj", "{3C4F42FC-292A-420B-B63D-C03DFBDD8E4E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mpcinfo", "..\plugins\mpcinfo\mpcinfo.vcxproj", "{B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "upd", "..\plugins\upd\upd.vcxproj", "{461DC24A-A410-4171-8C02-CCDBF3702C2A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winamp", "..\plugins\winamp\winamp.vcxproj", "{E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsys", "..\plugins\winsys\winsys.vcxproj", "{6C0CA980-97C5-427A-BE61-5BCECAFABBDA}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xsasl", "..\plugins\xsasl\xsasl.vcxproj", "{18871EBA-AC85-4652-8919-EB8064B9A714}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xtray", "..\plugins\xtray\xtray.vcxproj", "{3024CF36-85E5-4E00-9608-7002E2C7EF14}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -78,6 +111,28 @@ Global {19C52A0A-A790-409E-A28A-9745FF990F5C}.Release|Win32.Build.0 = Release|Win32 {646B4316-C8B8-4DB6-B6AE-E586929E5729}.Release|Win32.ActiveCfg = Release|Win32 {646B4316-C8B8-4DB6-B6AE-E586929E5729}.Release|Win32.Build.0 = Release|Win32 + {4980AF24-9D42-427D-A8E6-0DF3B97C455D}.Release|Win32.ActiveCfg = Release|Win32 + {4980AF24-9D42-427D-A8E6-0DF3B97C455D}.Release|Win32.Build.0 = Release|Win32 + {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91}.Release|Win32.ActiveCfg = Release|Win32 + {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91}.Release|Win32.Build.0 = Release|Win32 + {3786FA8C-3E76-45E3-984E-FCCFF44729C9}.Release|Win32.ActiveCfg = Release|Win32 + {3786FA8C-3E76-45E3-984E-FCCFF44729C9}.Release|Win32.Build.0 = Release|Win32 + {17E4BE39-76F7-4A06-AD21-EFD0C5091F76}.Release|Win32.ActiveCfg = Release|Win32 + {17E4BE39-76F7-4A06-AD21-EFD0C5091F76}.Release|Win32.Build.0 = Release|Win32 + {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E}.Release|Win32.ActiveCfg = Release|Win32 + {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E}.Release|Win32.Build.0 = Release|Win32 + {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC}.Release|Win32.ActiveCfg = Release|Win32 + {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC}.Release|Win32.Build.0 = Release|Win32 + {461DC24A-A410-4171-8C02-CCDBF3702C2A}.Release|Win32.ActiveCfg = Release|Win32 + {461DC24A-A410-4171-8C02-CCDBF3702C2A}.Release|Win32.Build.0 = Release|Win32 + {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE}.Release|Win32.ActiveCfg = Release|Win32 + {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE}.Release|Win32.Build.0 = Release|Win32 + {6C0CA980-97C5-427A-BE61-5BCECAFABBDA}.Release|Win32.ActiveCfg = Release|Win32 + {6C0CA980-97C5-427A-BE61-5BCECAFABBDA}.Release|Win32.Build.0 = Release|Win32 + {18871EBA-AC85-4652-8919-EB8064B9A714}.Release|Win32.ActiveCfg = Release|Win32 + {18871EBA-AC85-4652-8919-EB8064B9A714}.Release|Win32.Build.0 = Release|Win32 + {3024CF36-85E5-4E00-9608-7002E2C7EF14}.Release|Win32.ActiveCfg = Release|Win32 + {3024CF36-85E5-4E00-9608-7002E2C7EF14}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -89,6 +144,17 @@ Global {87554B59-006C-4D94-9714-897B27067BA3} = {AAACEB12-9475-410E-AF5A-FDFF907E9043} {6CD3647E-4541-4849-9DD7-C8816665AE42} = {BB051F0F-A841-4A9A-BAF6-51DD9866D65A} {98B56DF9-E4F1-4696-A565-5F7823CF214D} = {BB051F0F-A841-4A9A-BAF6-51DD9866D65A} + {4980AF24-9D42-427D-A8E6-0DF3B97C455D} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {3786FA8C-3E76-45E3-984E-FCCFF44729C9} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {17E4BE39-76F7-4A06-AD21-EFD0C5091F76} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {461DC24A-A410-4171-8C02-CCDBF3702C2A} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {6C0CA980-97C5-427A-BE61-5BCECAFABBDA} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {18871EBA-AC85-4652-8919-EB8064B9A714} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {3024CF36-85E5-4E00-9608-7002E2C7EF14} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} {2773666A-8CFC-4533-A043-EAD59F16A1C7} = {D237DA6B-BD5F-46C0-8BEA-50E9A1340240} {987E9374-98A1-44BA-946F-D3472D7A7055} = {D237DA6B-BD5F-46C0-8BEA-50E9A1340240} {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0} = {D237DA6B-BD5F-46C0-8BEA-50E9A1340240} -- cgit 1.4.1 From 593efa703b6914f963533da513576a26e744ead9 Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Fri, 15 Jun 2012 21:37:48 +0200 Subject: LOTS of fixes to the VS solution --- plugins/checksum/checksum.vcxproj | 2 + plugins/dns/dns.vcxproj | 2 + plugins/doat/doat.vcxproj | 2 + plugins/exec/exec.vcxproj | 2 + plugins/fishlim/fishlim.vcxproj | 2 + plugins/lua/lua.vcxproj | 2 + plugins/mpcinfo/mpcinfo.vcxproj | 2 + plugins/perl/perl-512.vcxproj | 11 +- plugins/perl/perl-514.vcxproj | 11 +- plugins/perl/perl-516.vcxproj | 11 +- plugins/python/python.vcxproj | 2 + plugins/tcl/tcl.vcxproj | 2 + plugins/upd/upd.vcxproj | 2 + plugins/winamp/winamp.vcxproj | 2 + plugins/winsys/winsys.vcxproj | 2 + plugins/wmpa/wmpa.vcxproj | 2 + plugins/xsasl/xsasl.vcxproj | 2 + plugins/xtray/xtray.vcxproj | 2 + src/common/common.vcxproj | 5 +- src/dirent/dirent.vcxproj | 2 + src/fe-gtk/fe-gtk.vcxproj | 2 + src/fe-text/fe-text.vcxproj | 2 + src/pixmaps/pixmaps.vcxproj | 4 +- src/version/version.c | 20 +- src/version/version.vcxproj | 4 +- win32/bitmaps/wizardimage.bmp | Bin 52062 -> 0 bytes win32/bitmaps/wizardsmallimage.bmp | Bin 9798 -> 0 bytes win32/copy/copy.vcxproj | 21 +- win32/copy/copy.vcxproj.filters | 46 +- win32/copy/etc/download.png | Bin 0 -> 703 bytes win32/copy/etc/gtk-2.0/gtkrc | 71 + win32/copy/etc/gtkpref.png | Bin 0 -> 323 bytes win32/copy/etc/music.png | Bin 0 -> 3577 bytes win32/copy/etc/system.png | Bin 0 -> 3578 bytes win32/copy/share/xml/iso-codes/iso_3166.xml | 1703 +++++++++++++++++++ win32/copy/share/xml/iso-codes/iso_639.xml | 2169 +++++++++++++++++++++++++ win32/etc/download.png | Bin 703 -> 0 bytes win32/etc/gtk-2.0/gtkrc | 71 - win32/etc/gtkpref.png | Bin 323 -> 0 bytes win32/etc/music.png | Bin 3577 -> 0 bytes win32/etc/system.png | Bin 3578 -> 0 bytes win32/installer/installer.vcxproj | 32 +- win32/installer/installer.vcxproj.filters | 28 +- win32/installer/watercolorlite-blue.cjstyles | Bin 0 -> 308224 bytes win32/installer/watercolorlite-green.cjstyles | Bin 0 -> 308224 bytes win32/installer/wizardimage.bmp | Bin 0 -> 52062 bytes win32/installer/wizardsmallimage.bmp | Bin 0 -> 9798 bytes win32/installer/xchat-wdk-x64.skel.iss | 279 ++++ win32/installer/xchat-wdk-x86.skel.iss | 282 ++++ win32/isskin/watercolorlite-blue.cjstyles | Bin 308224 -> 0 bytes win32/isskin/watercolorlite-green.cjstyles | Bin 308224 -> 0 bytes win32/nls/nls.vcxproj | 13 +- win32/share/themes/Murrine/gtk-2.0/gtkrc | 7 - win32/share/xml/iso-codes/iso_3166.xml | 1703 ------------------- win32/share/xml/iso-codes/iso_639.xml | 2169 ------------------------- win32/xchat-wdk-x64.skel.iss | 279 ---- win32/xchat-wdk-x86.skel.iss | 282 ---- win32/xchat.props | 2 +- win32/xchat.sln | 24 +- 59 files changed, 4718 insertions(+), 4565 deletions(-) delete mode 100644 win32/bitmaps/wizardimage.bmp delete mode 100644 win32/bitmaps/wizardsmallimage.bmp create mode 100644 win32/copy/etc/download.png create mode 100644 win32/copy/etc/gtk-2.0/gtkrc create mode 100644 win32/copy/etc/gtkpref.png create mode 100644 win32/copy/etc/music.png create mode 100644 win32/copy/etc/system.png create mode 100644 win32/copy/share/xml/iso-codes/iso_3166.xml create mode 100644 win32/copy/share/xml/iso-codes/iso_639.xml delete mode 100644 win32/etc/download.png delete mode 100644 win32/etc/gtk-2.0/gtkrc delete mode 100644 win32/etc/gtkpref.png delete mode 100644 win32/etc/music.png delete mode 100644 win32/etc/system.png create mode 100644 win32/installer/watercolorlite-blue.cjstyles create mode 100644 win32/installer/watercolorlite-green.cjstyles create mode 100644 win32/installer/wizardimage.bmp create mode 100644 win32/installer/wizardsmallimage.bmp create mode 100644 win32/installer/xchat-wdk-x64.skel.iss create mode 100644 win32/installer/xchat-wdk-x86.skel.iss delete mode 100644 win32/isskin/watercolorlite-blue.cjstyles delete mode 100644 win32/isskin/watercolorlite-green.cjstyles delete mode 100644 win32/share/themes/Murrine/gtk-2.0/gtkrc delete mode 100644 win32/share/xml/iso-codes/iso_3166.xml delete mode 100644 win32/share/xml/iso-codes/iso_639.xml delete mode 100644 win32/xchat-wdk-x64.skel.iss delete mode 100644 win32/xchat-wdk-x86.skel.iss (limited to 'plugins/fishlim') diff --git a/plugins/checksum/checksum.vcxproj b/plugins/checksum/checksum.vcxproj index cbfa2a2d..c4090cd1 100644 --- a/plugins/checksum/checksum.vcxproj +++ b/plugins/checksum/checksum.vcxproj @@ -30,6 +30,8 @@ false xcchecksum + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/plugins/dns/dns.vcxproj b/plugins/dns/dns.vcxproj index b98c778f..38f1634b 100644 --- a/plugins/dns/dns.vcxproj +++ b/plugins/dns/dns.vcxproj @@ -30,6 +30,8 @@ false xcdns + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/plugins/doat/doat.vcxproj b/plugins/doat/doat.vcxproj index f0168a6b..c6901fe1 100644 --- a/plugins/doat/doat.vcxproj +++ b/plugins/doat/doat.vcxproj @@ -30,6 +30,8 @@ false xcdoat + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/plugins/exec/exec.vcxproj b/plugins/exec/exec.vcxproj index cef4049c..15bf5ec5 100644 --- a/plugins/exec/exec.vcxproj +++ b/plugins/exec/exec.vcxproj @@ -30,6 +30,8 @@ false xcexec + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/plugins/fishlim/fishlim.vcxproj b/plugins/fishlim/fishlim.vcxproj index 1cf5293f..0f6e1c38 100644 --- a/plugins/fishlim/fishlim.vcxproj +++ b/plugins/fishlim/fishlim.vcxproj @@ -30,6 +30,8 @@ false xcfishlim + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/plugins/lua/lua.vcxproj b/plugins/lua/lua.vcxproj index 69a8e4ea..26d21856 100644 --- a/plugins/lua/lua.vcxproj +++ b/plugins/lua/lua.vcxproj @@ -30,6 +30,8 @@ false $(LuaOutput) + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/plugins/mpcinfo/mpcinfo.vcxproj b/plugins/mpcinfo/mpcinfo.vcxproj index 04182d50..7f12822e 100644 --- a/plugins/mpcinfo/mpcinfo.vcxproj +++ b/plugins/mpcinfo/mpcinfo.vcxproj @@ -30,6 +30,8 @@ false xcmpcinfo + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/plugins/perl/perl-512.vcxproj b/plugins/perl/perl-512.vcxproj index 440496f3..d924af48 100644 --- a/plugins/perl/perl-512.vcxproj +++ b/plugins/perl/perl-512.vcxproj @@ -30,6 +30,8 @@ false $(Perl512Output) + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) @@ -41,7 +43,7 @@ true WIN32;NDEBUG;_WINDOWS;_USRDLL;PERL512_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions) true - $(Perl512Path)\perl\lib\CORE;..;%(AdditionalIncludeDirectories) + $(Perl512Path)\perl\lib\CORE;$(IntDir);..;%(AdditionalIncludeDirectories) Windows @@ -55,8 +57,11 @@ "$(GendefPath)\gendef" "$(Perl512Path)\perl\bin\$(Perl512Lib).dll" -lib /nologo /machine:x86 "/def:$(Perl512Lib).def" "/out:$(OutputPath)\$(Perl512Lib).lib" -"$(Perl512Path)\perl\bin\perl.exe" generate_header +move $(Perl512Lib).def "$(IntDir)" +lib /nologo /machine:x86 "/def:$(IntDir)$(Perl512Lib).def" "/out:$(OutDir)\$(Perl512Lib).lib" +"$(Perl512Path)\perl\bin\perl.exe" generate_header +move irc.pm.h "$(IntDir)" +move xchat.pm.h "$(IntDir)" diff --git a/plugins/perl/perl-514.vcxproj b/plugins/perl/perl-514.vcxproj index 04865562..58cc4f04 100644 --- a/plugins/perl/perl-514.vcxproj +++ b/plugins/perl/perl-514.vcxproj @@ -30,6 +30,8 @@ false $(Perl514Output) + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) @@ -40,7 +42,7 @@ true true WIN32;NDEBUG;_WINDOWS;_USRDLL;PERL514_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions) - $(Perl514Path)\perl\lib\CORE;..;%(AdditionalIncludeDirectories) + $(Perl514Path)\perl\lib\CORE;$(IntDir);..;%(AdditionalIncludeDirectories) true @@ -55,8 +57,11 @@ "$(GendefPath)\gendef" "$(Perl514Path)\perl\bin\$(Perl514Lib).dll" -lib /nologo /machine:x86 "/def:$(Perl514Lib).def" "/out:$(OutputPath)\$(Perl514Lib).lib" -"$(Perl514Path)\perl\bin\perl.exe" generate_header +move $(Perl514Lib).def "$(IntDir)" +lib /nologo /machine:x86 "/def:$(IntDir)$(Perl514Lib).def" "/out:$(OutDir)\$(Perl514Lib).lib" +"$(Perl514Path)\perl\bin\perl.exe" generate_header +move irc.pm.h "$(IntDir)" +move xchat.pm.h "$(IntDir)" diff --git a/plugins/perl/perl-516.vcxproj b/plugins/perl/perl-516.vcxproj index 5a3c620d..516c1b80 100644 --- a/plugins/perl/perl-516.vcxproj +++ b/plugins/perl/perl-516.vcxproj @@ -30,6 +30,8 @@ false $(Perl516Output) + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) @@ -40,7 +42,7 @@ true true WIN32;NDEBUG;_WINDOWS;_USRDLL;PERL516_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions) - $(Perl516Path)\perl\lib\CORE;..;%(AdditionalIncludeDirectories) + $(Perl516Path)\perl\lib\CORE;$(IntDir);..;%(AdditionalIncludeDirectories) true @@ -55,8 +57,11 @@ "$(GendefPath)\gendef" "$(Perl516Path)\perl\bin\$(Perl516Lib).dll" -lib /nologo /machine:x86 "/def:$(Perl516Lib).def" "/out:$(OutputPath)\$(Perl516Lib).lib" -"$(Perl516Path)\perl\bin\perl.exe" generate_header +move $(Perl516Lib).def "$(IntDir)" +lib /nologo /machine:x86 "/def:$(IntDir)$(Perl516Lib).def" "/out:$(OutDir)\$(Perl516Lib).lib" +"$(Perl516Path)\perl\bin\perl.exe" generate_header +move irc.pm.h "$(IntDir)" +move xchat.pm.h "$(IntDir)" diff --git a/plugins/python/python.vcxproj b/plugins/python/python.vcxproj index de0fadea..923eeb92 100644 --- a/plugins/python/python.vcxproj +++ b/plugins/python/python.vcxproj @@ -30,6 +30,8 @@ false $(PythonOutput) + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/plugins/tcl/tcl.vcxproj b/plugins/tcl/tcl.vcxproj index fa69aa33..baa188f6 100644 --- a/plugins/tcl/tcl.vcxproj +++ b/plugins/tcl/tcl.vcxproj @@ -40,6 +40,8 @@ false $(TclOutput) + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/plugins/upd/upd.vcxproj b/plugins/upd/upd.vcxproj index ee00dc1a..9cf7c017 100644 --- a/plugins/upd/upd.vcxproj +++ b/plugins/upd/upd.vcxproj @@ -30,6 +30,8 @@ false xcupd + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/plugins/winamp/winamp.vcxproj b/plugins/winamp/winamp.vcxproj index 3924b8b2..0a1eb419 100644 --- a/plugins/winamp/winamp.vcxproj +++ b/plugins/winamp/winamp.vcxproj @@ -30,6 +30,8 @@ false xcwinamp + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/plugins/winsys/winsys.vcxproj b/plugins/winsys/winsys.vcxproj index 1466e8e7..656f6ee9 100644 --- a/plugins/winsys/winsys.vcxproj +++ b/plugins/winsys/winsys.vcxproj @@ -30,6 +30,8 @@ false xcwinsys + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/plugins/wmpa/wmpa.vcxproj b/plugins/wmpa/wmpa.vcxproj index b231d0b0..630cef4d 100644 --- a/plugins/wmpa/wmpa.vcxproj +++ b/plugins/wmpa/wmpa.vcxproj @@ -31,6 +31,8 @@ false xcwmpa + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/plugins/xsasl/xsasl.vcxproj b/plugins/xsasl/xsasl.vcxproj index 9bb8fb24..7e0c41d7 100644 --- a/plugins/xsasl/xsasl.vcxproj +++ b/plugins/xsasl/xsasl.vcxproj @@ -30,6 +30,8 @@ false xcxsasl + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/plugins/xtray/xtray.vcxproj b/plugins/xtray/xtray.vcxproj index 1dc97f30..1f7aa5cf 100644 --- a/plugins/xtray/xtray.vcxproj +++ b/plugins/xtray/xtray.vcxproj @@ -29,6 +29,8 @@ false + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/src/common/common.vcxproj b/src/common/common.vcxproj index f0a730b7..b57b2ccf 100644 --- a/src/common/common.vcxproj +++ b/src/common/common.vcxproj @@ -90,7 +90,10 @@ - + + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 diff --git a/src/dirent/dirent.vcxproj b/src/dirent/dirent.vcxproj index 65fa2fb0..8ac38f92 100644 --- a/src/dirent/dirent.vcxproj +++ b/src/dirent/dirent.vcxproj @@ -35,6 +35,8 @@ $(ProjectName)-win32 + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/src/fe-gtk/fe-gtk.vcxproj b/src/fe-gtk/fe-gtk.vcxproj index 68390d03..fce8d3e6 100644 --- a/src/fe-gtk/fe-gtk.vcxproj +++ b/src/fe-gtk/fe-gtk.vcxproj @@ -30,6 +30,8 @@ false xchat + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/src/fe-text/fe-text.vcxproj b/src/fe-text/fe-text.vcxproj index 389c7b5e..ac7068ec 100644 --- a/src/fe-text/fe-text.vcxproj +++ b/src/fe-text/fe-text.vcxproj @@ -30,6 +30,8 @@ false xchat-text + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) diff --git a/src/pixmaps/pixmaps.vcxproj b/src/pixmaps/pixmaps.vcxproj index ba88104d..3fda0fef 100644 --- a/src/pixmaps/pixmaps.vcxproj +++ b/src/pixmaps/pixmaps.vcxproj @@ -29,6 +29,8 @@ false + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) @@ -47,7 +49,7 @@ true - "$(DepsRoot)\bin\gdk-pixbuf-csource" --build-list $(Pixmaps) > "$(SolutionDir)\..\src\pixmaps\inline_pngs.h" + "$(DepsRoot)\bin\gdk-pixbuf-csource" --build-list $(Pixmaps) > "$(SolutionDir)\..\src\pixmaps\inline_pngs.h" diff --git a/src/version/version.c b/src/version/version.c index 14312a43..53af5675 100644 --- a/src/version/version.c +++ b/src/version/version.c @@ -76,13 +76,13 @@ main (int argc, char *argv[]) { printf ("#define COMMA_VERSION %s\n", comma ()); } - else if (!strcmp (argv[1], "-a32")) /* xchat-wdk.iss/AppVerName */ - { - printf ("AppVerName=XChat-WDK %s (x86)\n", PACKAGE_VERSION); - } - else if (!strcmp (argv[1], "-a64")) /* xchat-wdk.iss/AppVerName */ + else if (!strcmp (argv[1], "-a")) /* xchat-wdk.iss/AppVerName */ { +#ifdef _WIN64 printf ("AppVerName=XChat-WDK %s (x64)\n", PACKAGE_VERSION); +#else + printf ("AppVerName=XChat-WDK %s (x86)\n", PACKAGE_VERSION); +#endif } else if (!strcmp (argv[1], "-v")) /* xchat-wdk.iss/AppVersion */ { @@ -92,13 +92,13 @@ main (int argc, char *argv[]) { printf ("VersionInfoVersion=%s\n", point ()); } - else if (!strcmp (argv[1], "-o32")) /* xchat-wdk.iss/OutputBaseFilename */ - { - printf ("OutputBaseFilename=XChat-WDK %s x86\n", PACKAGE_VERSION); - } - else if (!strcmp (argv[1], "-o64")) /* xchat-wdk.iss/OutputBaseFilename */ + else if (!strcmp (argv[1], "-o")) /* xchat-wdk.iss/OutputBaseFilename */ { +#ifdef _WIN64 printf ("OutputBaseFilename=XChat-WDK %s x64\n", PACKAGE_VERSION); +#else + printf ("OutputBaseFilename=XChat-WDK %s x86\n", PACKAGE_VERSION); +#endif } else if (!strcmp (argv[1], "-v")) /* version.txt */ { diff --git a/src/version/version.vcxproj b/src/version/version.vcxproj index 26c13458..b07b8e2a 100644 --- a/src/version/version.vcxproj +++ b/src/version/version.vcxproj @@ -29,6 +29,8 @@ false + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) @@ -48,7 +50,7 @@ true - "$(OutputPath)\$(TargetName)$(TargetExt)" -r > "$(SolutionDir)\..\resource.h" + "$(OutDir)\$(TargetName)$(TargetExt)" -r > "$(SolutionDir)\..\resource.h" diff --git a/win32/bitmaps/wizardimage.bmp b/win32/bitmaps/wizardimage.bmp deleted file mode 100644 index 9f5a4c90..00000000 Binary files a/win32/bitmaps/wizardimage.bmp and /dev/null differ diff --git a/win32/bitmaps/wizardsmallimage.bmp b/win32/bitmaps/wizardsmallimage.bmp deleted file mode 100644 index 1bb8b790..00000000 Binary files a/win32/bitmaps/wizardsmallimage.bmp and /dev/null differ diff --git a/win32/copy/copy.vcxproj b/win32/copy/copy.vcxproj index d7c6fda7..5b64ddc6 100644 --- a/win32/copy/copy.vcxproj +++ b/win32/copy/copy.vcxproj @@ -16,6 +16,7 @@ false true MultiByte + WDK7 @@ -25,7 +26,10 @@ - + + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level3 @@ -67,8 +71,8 @@ copy "$(DepsRoot)\bin\libpng14-14.dll" "$(XChatDest)" copy "$(DepsRoot)\bin\libxml2.dll" "$(XChatDest)" xcopy /q /s /i "$(DepsRoot)\lib\gtk-2.0\2.10.0\engines" "$(XChatDest)\lib\gtk-2.0\2.10.0\engines" xcopy /q /s /i "$(DepsRoot)\lib\gtk-2.0\modules\libgail.dll" "$(XChatDest)\lib\gtk-2.0\modules\" -xcopy /q /s /i "..\etc" "$(XChatDest)\etc" -xcopy /q /s /i "..\share" "$(XChatDest)\share" +xcopy /q /s /i etc "$(XChatDest)\etc" +xcopy /q /s /i share "$(XChatDest)\share" copy "..\..\COPYING" "$(XChatDest)" copy "$(DepsRoot)\LICENSE.OPENSSL" "$(XChatDest)" copy "$(DepsRoot)\LICENSE.ZLIB" "$(XChatDest)" @@ -102,13 +106,20 @@ copy "$(OutDir)\xcwinamp.dll" "$(XChatDest)\plugins" copy "$(OutDir)\xcwinsys.dll" "$(XChatDest)\plugins" copy "$(OutDir)\xcwmpa.dll" "$(XChatDest)\plugins" copy "$(DepsRoot)\bin\lua51.dll" "$(XChatDest)" -xcopy /q /s /i "..\..\po\locale" "$(XChatDest)\locale" +xcopy /q /s /i "$(OutDir)\locale" "$(XChatDest)\locale" xcopy /q /s /i "$(DepsRoot)\share\locale" "$(XChatDest)\share\locale" copy "$(ProgramFiles)\Codejock Software\ISSkin\ISSkinU.dll" "$(XChatDest)" -copy "..\isskin\watercolorlite-green.cjstyles" "$(XChatDest)" +copy "..\installer\watercolorlite-green.cjstyles" "$(XChatDest)" + + + + + + + diff --git a/win32/copy/copy.vcxproj.filters b/win32/copy/copy.vcxproj.filters index ef1ebf58..f832474d 100644 --- a/win32/copy/copy.vcxproj.filters +++ b/win32/copy/copy.vcxproj.filters @@ -1,2 +1,46 @@  - \ No newline at end of file + + + + {e02a8c67-767c-4c6e-a854-81fae08cf4da} + + + {503881c0-011d-443b-a373-4bfe125dcfa6} + + + {4316433a-2a8e-48f7-9020-e1f4de0d23d1} + + + {832ebebc-ab71-4bf6-9f3a-02ec748f7c14} + + + {9a881586-aed2-4f80-ba84-e521e6785566} + + + {c825f724-0618-4160-97b7-12d6e0f2bc7b} + + + + + Resource Files\etc + + + Resource Files\etc + + + Resource Files\etc + + + Resource Files\etc + + + Resource Files\etc\gtk-2.0 + + + Resource Files\share\xml\iso-codes + + + Resource Files\share\xml\iso-codes + + + \ No newline at end of file diff --git a/win32/copy/etc/download.png b/win32/copy/etc/download.png new file mode 100644 index 00000000..43253432 Binary files /dev/null and b/win32/copy/etc/download.png differ diff --git a/win32/copy/etc/gtk-2.0/gtkrc b/win32/copy/etc/gtk-2.0/gtkrc new file mode 100644 index 00000000..6ac7b76c --- /dev/null +++ b/win32/copy/etc/gtk-2.0/gtkrc @@ -0,0 +1,71 @@ +gtk-font-name = "sans 8" + +gtk-icon-sizes = "gtk-menu=13,13:gtk-small-toolbar=16,16:gtk-large-toolbar=24,24:gtk-dnd=32,32" +gtk-toolbar-icon-size = small-toolbar + +# disable images in buttons. i've only seen ugly delphi apps use this feature. +gtk-button-images = 0 + +# enable/disable images in menus. most "stock" microsoft apps don't use these, except sparingly. +# the office apps use them heavily, though. +gtk-menu-images = 1 + +# use the win32 button ordering instead of the GNOME HIG one, where applicable +gtk-alternative-button-order = 1 + +# use the win32 sort indicators direction, as in Explorer +gtk-alternative-sort-arrows = 1 + +# Windows users don't expect the PC Speaker beeping at them when they backspace in an empty textview and stuff like that +gtk-error-bell = 0 + +# hide mnemonic underlines until the Alt key is pressed (requires gtk 2.18+) +# gtk-auto-mnemonics = 1 + +style "msw-default" +{ + GtkWidget::interior-focus = 1 + GtkOptionMenu::indicator-size = { 9, 5 } + GtkOptionMenu::indicator-spacing = { 7, 5, 2, 2 } + GtkSpinButton::shadow-type = in + + # Owen and I disagree that these should be themable + #GtkUIManager::add-tearoffs = 0 + #GtkComboBox::add-tearoffs = 0 + + GtkComboBox::appears-as-list = 1 + GtkComboBox::focus-on-click = 0 + + GOComboBox::add_tearoffs = 0 + + GtkTreeView::allow-rules = 0 + GtkTreeView::expander-size = 12 + + GtkExpander::expander-size = 12 + + GtkScrolledWindow::scrollbar_spacing = 1 + + GtkSeparatorMenuItem::horizontal-padding = 2 + + engine "wimp" + { + } +} +class "*" style "msw-default" + +binding "ms-windows-tree-view" +{ + bind "Right" { "expand-collapse-cursor-row" (1,1,0) } + bind "Left" { "expand-collapse-cursor-row" (1,0,0) } +} + +class "GtkTreeView" binding "ms-windows-tree-view" + +style "msw-combobox-thickness" = "msw-default" +{ + xthickness = 0 + ythickness = 0 +} + +widget_class "*TreeView*ComboBox*" style "msw-combobox-thickness" +widget_class "*ComboBox*GtkFrame*" style "msw-combobox-thickness" diff --git a/win32/copy/etc/gtkpref.png b/win32/copy/etc/gtkpref.png new file mode 100644 index 00000000..9a6c9cf9 Binary files /dev/null and b/win32/copy/etc/gtkpref.png differ diff --git a/win32/copy/etc/music.png b/win32/copy/etc/music.png new file mode 100644 index 00000000..3a72f118 Binary files /dev/null and b/win32/copy/etc/music.png differ diff --git a/win32/copy/etc/system.png b/win32/copy/etc/system.png new file mode 100644 index 00000000..fc4282c7 Binary files /dev/null and b/win32/copy/etc/system.png differ diff --git a/win32/copy/share/xml/iso-codes/iso_3166.xml b/win32/copy/share/xml/iso-codes/iso_3166.xml new file mode 100644 index 00000000..77c72eb2 --- /dev/null +++ b/win32/copy/share/xml/iso-codes/iso_3166.xml @@ -0,0 +1,1703 @@ + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/copy/share/xml/iso-codes/iso_639.xml b/win32/copy/share/xml/iso-codes/iso_639.xml new file mode 100644 index 00000000..02fa01fb --- /dev/null +++ b/win32/copy/share/xml/iso-codes/iso_639.xml @@ -0,0 +1,2169 @@ + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/etc/download.png b/win32/etc/download.png deleted file mode 100644 index 43253432..00000000 Binary files a/win32/etc/download.png and /dev/null differ diff --git a/win32/etc/gtk-2.0/gtkrc b/win32/etc/gtk-2.0/gtkrc deleted file mode 100644 index 6ac7b76c..00000000 --- a/win32/etc/gtk-2.0/gtkrc +++ /dev/null @@ -1,71 +0,0 @@ -gtk-font-name = "sans 8" - -gtk-icon-sizes = "gtk-menu=13,13:gtk-small-toolbar=16,16:gtk-large-toolbar=24,24:gtk-dnd=32,32" -gtk-toolbar-icon-size = small-toolbar - -# disable images in buttons. i've only seen ugly delphi apps use this feature. -gtk-button-images = 0 - -# enable/disable images in menus. most "stock" microsoft apps don't use these, except sparingly. -# the office apps use them heavily, though. -gtk-menu-images = 1 - -# use the win32 button ordering instead of the GNOME HIG one, where applicable -gtk-alternative-button-order = 1 - -# use the win32 sort indicators direction, as in Explorer -gtk-alternative-sort-arrows = 1 - -# Windows users don't expect the PC Speaker beeping at them when they backspace in an empty textview and stuff like that -gtk-error-bell = 0 - -# hide mnemonic underlines until the Alt key is pressed (requires gtk 2.18+) -# gtk-auto-mnemonics = 1 - -style "msw-default" -{ - GtkWidget::interior-focus = 1 - GtkOptionMenu::indicator-size = { 9, 5 } - GtkOptionMenu::indicator-spacing = { 7, 5, 2, 2 } - GtkSpinButton::shadow-type = in - - # Owen and I disagree that these should be themable - #GtkUIManager::add-tearoffs = 0 - #GtkComboBox::add-tearoffs = 0 - - GtkComboBox::appears-as-list = 1 - GtkComboBox::focus-on-click = 0 - - GOComboBox::add_tearoffs = 0 - - GtkTreeView::allow-rules = 0 - GtkTreeView::expander-size = 12 - - GtkExpander::expander-size = 12 - - GtkScrolledWindow::scrollbar_spacing = 1 - - GtkSeparatorMenuItem::horizontal-padding = 2 - - engine "wimp" - { - } -} -class "*" style "msw-default" - -binding "ms-windows-tree-view" -{ - bind "Right" { "expand-collapse-cursor-row" (1,1,0) } - bind "Left" { "expand-collapse-cursor-row" (1,0,0) } -} - -class "GtkTreeView" binding "ms-windows-tree-view" - -style "msw-combobox-thickness" = "msw-default" -{ - xthickness = 0 - ythickness = 0 -} - -widget_class "*TreeView*ComboBox*" style "msw-combobox-thickness" -widget_class "*ComboBox*GtkFrame*" style "msw-combobox-thickness" diff --git a/win32/etc/gtkpref.png b/win32/etc/gtkpref.png deleted file mode 100644 index 9a6c9cf9..00000000 Binary files a/win32/etc/gtkpref.png and /dev/null differ diff --git a/win32/etc/music.png b/win32/etc/music.png deleted file mode 100644 index 3a72f118..00000000 Binary files a/win32/etc/music.png and /dev/null differ diff --git a/win32/etc/system.png b/win32/etc/system.png deleted file mode 100644 index fc4282c7..00000000 Binary files a/win32/etc/system.png and /dev/null differ diff --git a/win32/installer/installer.vcxproj b/win32/installer/installer.vcxproj index a8ca84fa..3cb84d56 100644 --- a/win32/installer/installer.vcxproj +++ b/win32/installer/installer.vcxproj @@ -16,6 +16,7 @@ false true MultiByte + WDK7 @@ -25,7 +26,10 @@ - + + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level3 @@ -39,19 +43,25 @@ true - echo [Setup] > "$(SolutionDir)\xchat-wdk-x86.iss" -echo WizardImageFile="$(SolutionDir)\bitmaps\wizardimage.bmp" >> "$(SolutionDir)\xchat-wdk-x86.iss" -echo WizardSmallImageFile="$(SolutionDir)\bitmaps\wizardsmallimage.bmp" >> "$(SolutionDir)\xchat-wdk-x86.iss" -"$(OutDir)\version" -a32 >> "$(SolutionDir)\xchat-wdk-x86.iss" -"$(OutDir)\version" -v >> "$(SolutionDir)\xchat-wdk-x86.iss" -"$(OutDir)\version" -i >> "$(SolutionDir)\xchat-wdk-x86.iss" -"$(OutDir)\version" -o32 >> "$(SolutionDir)\xchat-wdk-x86.iss" -echo SetupIconFile="$(SolutionDir)\..\xchat.ico" >> "$(SolutionDir)\xchat-wdk-x86.iss" -type "$(SolutionDir)\xchat-wdk-x86.skel.iss" >> "$(SolutionDir)\xchat-wdk-x86.iss" -"$(ProgramFiles)\Inno Setup 5\compil32" /cc "$(SolutionDir)\xchat-wdk-x86.iss" + echo [Setup] > "$(OutDir)\xchat-wdk-x86.iss" +echo WizardImageFile="$(ProjectDir)\wizardimage.bmp" >> "$(OutDir)\xchat-wdk-x86.iss" +echo WizardSmallImageFile="$(ProjectDir)\wizardsmallimage.bmp" >> "$(OutDir)\xchat-wdk-x86.iss" +"$(OutDir)\version" -a >> "$(OutDir)\xchat-wdk-x86.iss" +"$(OutDir)\version" -v >> "$(OutDir)\xchat-wdk-x86.iss" +"$(OutDir)\version" -i >> "$(OutDir)\xchat-wdk-x86.iss" +"$(OutDir)\version" -o >> "$(OutDir)\xchat-wdk-x86.iss" +echo SetupIconFile="$(SolutionDir)\..\xchat.ico" >> "$(OutDir)\xchat-wdk-x86.iss" +type xchat-wdk-x86.skel.iss >> "$(OutDir)\xchat-wdk-x86.iss" +"$(ProgramFiles)\Inno Setup 5\compil32" /cc "$(OutDir)\xchat-wdk-x86.iss" + + + + + + diff --git a/win32/installer/installer.vcxproj.filters b/win32/installer/installer.vcxproj.filters index 47cfb34e..b18a6411 100644 --- a/win32/installer/installer.vcxproj.filters +++ b/win32/installer/installer.vcxproj.filters @@ -1,17 +1,29 @@  - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + \ No newline at end of file diff --git a/win32/installer/watercolorlite-blue.cjstyles b/win32/installer/watercolorlite-blue.cjstyles new file mode 100644 index 00000000..a457029b Binary files /dev/null and b/win32/installer/watercolorlite-blue.cjstyles differ diff --git a/win32/installer/watercolorlite-green.cjstyles b/win32/installer/watercolorlite-green.cjstyles new file mode 100644 index 00000000..2b77026d Binary files /dev/null and b/win32/installer/watercolorlite-green.cjstyles differ diff --git a/win32/installer/wizardimage.bmp b/win32/installer/wizardimage.bmp new file mode 100644 index 00000000..9f5a4c90 Binary files /dev/null and b/win32/installer/wizardimage.bmp differ diff --git a/win32/installer/wizardsmallimage.bmp b/win32/installer/wizardsmallimage.bmp new file mode 100644 index 00000000..1bb8b790 Binary files /dev/null and b/win32/installer/wizardsmallimage.bmp differ diff --git a/win32/installer/xchat-wdk-x64.skel.iss b/win32/installer/xchat-wdk-x64.skel.iss new file mode 100644 index 00000000..e0a804db --- /dev/null +++ b/win32/installer/xchat-wdk-x64.skel.iss @@ -0,0 +1,279 @@ +AppName=XChat-WDK (x64) +AppPublisher=XChat-WDK +AppPublisherURL=http://www.xchat-wdk.org/ +AppCopyright=Copyright (C) 1998-2010 Peter Zelezny +AppSupportURL=http://code.google.com/p/xchat-wdk/issues/list +AppUpdatesURL=http://www.xchat-wdk.org/home/downloads +LicenseFile=COPYING +UninstallDisplayIcon={app}\xchat.exe +UninstallDisplayName=XChat-WDK (x64) +DefaultDirName={pf}\XChat-WDK +DefaultGroupName=XChat-WDK +DisableProgramGroupPage=yes +SolidCompression=yes +SourceDir=..\..\rel +OutputDir=..\.. +FlatComponentsList=no +PrivilegesRequired=none +ShowComponentSizes=no +CreateUninstallRegKey=not IsTaskSelected('portable') +Uninstallable=not IsTaskSelected('portable') +ArchitecturesAllowed=x64 +ArchitecturesInstallIn64BitMode=x64 + +[Types] +Name: "normal"; Description: "Normal Installation" +Name: "full"; Description: "Full Installation" +Name: "minimal"; Description: "Minimal Installation" +Name: "custom"; Description: "Custom Installation"; Flags: iscustom + +[Components] +Name: "libs"; Description: "XChat-WDK"; Types: normal full minimal custom; Flags: fixed +Name: "xctext"; Description: "XChat-Text"; Types: full custom; Flags: disablenouninstallwarning +Name: "translations"; Description: "Translations"; Types: normal full custom; Flags: disablenouninstallwarning +;obs Name: "gtkengines"; Description: "GTK+ Engines"; Types: full custom; Flags: disablenouninstallwarning +;Name: "spelling"; Description: "Spelling Dictionaries"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins"; Description: "Plugins"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\checksum"; Description: "Checksum"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\dns"; Description: "DNS"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\doat"; Description: "Do At"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\exec"; Description: "Exec"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\fishlim"; Description: "FiSHLiM"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\mpcinfo"; Description: "mpcInfo"; Types: full custom; Flags: disablenouninstallwarning +;Name: "plugins\nonbmp"; Description: "Non-BMP"; Types: normal full custom; Flags: disablenouninstallwarning +Name: "plugins\upd"; Description: "Update Checker"; Types: normal full custom; Flags: disablenouninstallwarning +Name: "plugins\winamp"; Description: "Winamp"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\winsys"; Description: "WinSys"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\wmpa"; Description: "Windows Media Player Announcer"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\xsasl"; Description: "X-SASL"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\xtray"; Description: "X-Tray"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs"; Description: "Language Interfaces"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\lua"; Description: "Lua"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\lua\luawdk"; Description: "Lua-WDK"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\perl"; Description: "Perl"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\python"; Description: "Python"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\tcl"; Description: "Tcl"; Types: full custom; Flags: disablenouninstallwarning + +[Tasks] +Name: portable; Description: "Yes"; GroupDescription: "Portable Install (no Registry entries, no Start Menu icons, no uninstaller):"; Flags: unchecked + +Name: perl512; Description: "5.12"; GroupDescription: "Perl version:"; Flags: exclusive; Components: langs\perl +Name: perl514; Description: "5.14"; GroupDescription: "Perl version:"; Flags: exclusive unchecked; Components: langs\perl + +[Registry] +Root: HKCR; Subkey: "irc"; ValueType: none; ValueName: ""; ValueData: ""; Flags: deletekey uninsdeletekey; Tasks: not portable +Root: HKCR; Subkey: "irc"; ValueType: string; ValueName: ""; ValueData: "URL:IRC Protocol"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc"; ValueType: string; ValueName: "URL Protocol"; ValueData: ""; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\xchat.exe,0"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\shell"; ValueType: string; ValueName: ""; ValueData: "open"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: "{app}\xchat.exe --url=""%1"""; Flags: uninsdeletevalue; Tasks: not portable + +[Run] +Filename: "{app}\xchat.exe"; Description: "Run XChat-WDK after closing the Wizard"; Flags: nowait postinstall skipifsilent + +[Files] +; Add the ISSkin DLL used for skinning Inno Setup installations. +Source: ISSkinU.dll; DestDir: {app}; Flags: dontcopy + +; Add the Visual Style resource contains resources used for skinning, +; you can also use Microsoft Visual Styles (*.msstyles) resources. +Source: watercolorlite-blue.cjstyles; DestDir: {tmp}; Flags: dontcopy + +Source: "portable-mode"; DestDir: "{app}"; Tasks: portable + +Source: "cert.pem"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "COPYING"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.OPENSSL"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.ZLIB"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.GTK"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.CAIRO"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.LUA"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.ENCHANT"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.LIBXML"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "etc\gtk-2.0\gtkrc"; DestDir: "{app}\etc\gtk-2.0"; Flags: ignoreversion; Components: libs +;Source: "etc\gtk-2.0\gtkrc"; DestDir: "{app}\etc\gtk-2.0"; Flags: ignoreversion; Components: libs and not gtkengines +Source: "share\xml\*"; DestDir: "{app}\share\xml"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: libs +Source: "locale\*"; DestDir: "{app}\locale"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: translations +Source: "share\locale\*"; DestDir: "{app}\share\locale"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: translations +;Source: "share\myspell\*"; DestDir: "{app}\share\myspell"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: spelling + +Source: "libatk-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libcairo-2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libeay32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libexpat-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libffi-5.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libfreetype-6.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libfontconfig-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgdk_pixbuf-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgdk-win32-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgio-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libglib-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgmodule-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgobject-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgthread-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgtk-win32-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libintl-8.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libjasper-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libjpeg-8.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpango-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpangocairo-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpangoft2-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpangowin32-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libpixman-1-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libtiff-3.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpng14-14.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libpng15-15.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "lua51.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "ssleay32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "zlib1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libxml2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libxml2-2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libenchant.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs + +Source: "lib\enchant\libenchant_myspell.dll"; DestDir: "{app}\lib\enchant"; Flags: ignoreversion; Components: libs + +Source: "lib\gtk-2.0\2.10.0\engines\libpixmap.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: libs +Source: "lib\gtk-2.0\2.10.0\engines\libwimp.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: libs +Source: "lib\gtk-2.0\modules\libgail.dll"; DestDir: "{app}\lib\gtk-2.0\modules"; Flags: ignoreversion; Components: libs + +;obs Source: "etc\gtkpref.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libclearlooks.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libcrux-engine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libglide.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libhcengine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libindustrial.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libmist.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libmurrine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libredmond95.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libthinice.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "plugins\xcgtkpref.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: gtkengines +;obs Source: "share\themes\*"; DestDir: "{app}\share\themes"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: gtkengines +;obs Source: "gtk2-prefs.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: gtkengines + +Source: "plugins\xcchecksum.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\checksum +Source: "plugins\xcdns.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\dns +Source: "plugins\xcdoat.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\doat +Source: "plugins\xcexec.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\exec +Source: "plugins\xcfishlim.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\fishlim +Source: "etc\music.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\winamp or plugins\mpcinfo +Source: "plugins\xcmpcinfo.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\mpcinfo +;Source: "plugins\xcnonbmp.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\nonbmp +Source: "etc\download.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\upd +Source: "plugins\xcupd.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\upd +Source: "plugins\xcwinamp.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\winamp +Source: "etc\system.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\winsys +Source: "plugins\xcwinsys.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\winsys +Source: "plugins\xcxsasl.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\xsasl +Source: "plugins\xtray.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\xtray +Source: "plugins\xcwmpa.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\wmpa + +Source: "plugins\xclua.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\lua +Source: "plugins\xcpython.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\python +Source: "plugins\xctcl.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\tcl + +Source: "plugins\xcperl-512.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Flags: ignoreversion; Components: langs\perl; Tasks: perl512 +Source: "plugins\xcperl-514.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Flags: ignoreversion; Components: langs\perl; Tasks: perl514 + +Source: "xchat.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "xchat-text.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: xctext + +[Icons] +Name: "{group}\XChat-WDK (x64)"; Filename: "{app}\xchat.exe"; Tasks: not portable +Name: "{group}\XChat-Text (x64)"; Filename: "{app}\xchat-text.exe"; Components: xctext; Tasks: not portable +Name: "{group}\Uninstall XChat-WDK (x64)"; Filename: "{uninstallexe}"; Tasks: not portable + +[Messages] +BeveledLabel= XChat-WDK + +[Code] +///////////////////////////////////////////////////////////////////// +// these are required for x86->x64 or reverse upgrades +///////////////////////////////////////////////////////////////////// +function GetUninstallString(): String; +var + sUnInstPath: String; + sUnInstallString: String; +begin + sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\XChat-WDK (x64)_is1'); + sUnInstallString := ''; + if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then + RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString); + Result := sUnInstallString; +end; + + +///////////////////////////////////////////////////////////////////// +function IsUpgrade(): Boolean; +begin + Result := (GetUninstallString() <> ''); +end; + + +///////////////////////////////////////////////////////////////////// +function UnInstallOldVersion(): Integer; +var + sUnInstallString: String; + iResultCode: Integer; +begin +// Return Values: +// 1 - uninstall string is empty +// 2 - error executing the UnInstallString +// 3 - successfully executed the UnInstallString + + // default return value + Result := 0; + + // get the uninstall string of the old app + sUnInstallString := GetUninstallString(); + if sUnInstallString <> '' then begin + sUnInstallString := RemoveQuotes(sUnInstallString); + if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then + Result := 3 + else + Result := 2; + end else + Result := 1; +end; + +///////////////////////////////////////////////////////////////////// +procedure CurStepChanged(CurStep: TSetupStep); +begin + if not (IsTaskSelected('portable')) then + begin + if (CurStep=ssInstall) then + begin + if (IsUpgrade()) then + begin + UnInstallOldVersion(); + end; + end; + end; +end; + +///////////////////////////////////////////////////////////////////// +// Importing LoadSkin API from ISSkin.DLL +procedure LoadSkin(lpszPath: String; lpszIniFileName: String); +external 'LoadSkin@files:isskinu.dll stdcall'; + +// Importing UnloadSkin API from ISSkin.DLL +procedure UnloadSkin(); +external 'UnloadSkin@files:isskinu.dll stdcall'; + +// Importing ShowWindow Windows API from User32.DLL +function ShowWindow(hWnd: Integer; uType: Integer): Integer; +external 'ShowWindow@user32.dll stdcall'; + +function InitializeSetup(): Boolean; +begin + ExtractTemporaryFile('watercolorlite-blue.cjstyles'); + LoadSkin(ExpandConstant('{tmp}\watercolorlite-blue.cjstyles'), ''); + Result := True; +end; + +procedure DeinitializeSetup(); +begin + // Hide Window before unloading skin so user does not get + // a glimpse of an unskinned window before it is closed. + ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0); + UnloadSkin(); +end; diff --git a/win32/installer/xchat-wdk-x86.skel.iss b/win32/installer/xchat-wdk-x86.skel.iss new file mode 100644 index 00000000..748c2b19 --- /dev/null +++ b/win32/installer/xchat-wdk-x86.skel.iss @@ -0,0 +1,282 @@ +AppName=XChat-WDK (x86) +AppPublisher=XChat-WDK +AppPublisherURL=http://www.xchat-wdk.org/ +AppCopyright=Copyright (C) 1998-2010 Peter Zelezny +AppSupportURL=http://code.google.com/p/xchat-wdk/issues/list +AppUpdatesURL=http://www.xchat-wdk.org/home/downloads +LicenseFile=COPYING +UninstallDisplayIcon={app}\xchat.exe +UninstallDisplayName=XChat-WDK (x86) +DefaultDirName={pf}\XChat-WDK +DefaultGroupName=XChat-WDK +DisableProgramGroupPage=yes +SolidCompression=yes +SourceDir=..\rel +OutputDir=.. +FlatComponentsList=no +PrivilegesRequired=none +ShowComponentSizes=no +CreateUninstallRegKey=not IsTaskSelected('portable') +Uninstallable=not IsTaskSelected('portable') +ArchitecturesAllowed=x86 x64 + +[Types] +Name: "normal"; Description: "Normal Installation" +Name: "full"; Description: "Full Installation" +Name: "minimal"; Description: "Minimal Installation" +Name: "custom"; Description: "Custom Installation"; Flags: iscustom + +[Components] +Name: "libs"; Description: "XChat-WDK"; Types: normal full minimal custom; Flags: fixed +Name: "xctext"; Description: "XChat-Text"; Types: full custom; Flags: disablenouninstallwarning +Name: "translations"; Description: "Translations"; Types: normal full custom; Flags: disablenouninstallwarning +;obs Name: "gtkengines"; Description: "GTK+ Engines"; Types: full custom; Flags: disablenouninstallwarning +;Name: "spelling"; Description: "Spelling Dictionaries"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins"; Description: "Plugins"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\checksum"; Description: "Checksum"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\dns"; Description: "DNS"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\doat"; Description: "Do At"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\exec"; Description: "Exec"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\fishlim"; Description: "FiSHLiM"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\mpcinfo"; Description: "mpcInfo"; Types: full custom; Flags: disablenouninstallwarning +;Name: "plugins\nonbmp"; Description: "Non-BMP"; Types: normal full custom; Flags: disablenouninstallwarning +Name: "plugins\upd"; Description: "Update Checker"; Types: normal full custom; Flags: disablenouninstallwarning +Name: "plugins\winamp"; Description: "Winamp"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\winsys"; Description: "WinSys"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\wmpa"; Description: "Windows Media Player Announcer"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\xsasl"; Description: "X-SASL"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\xtray"; Description: "X-Tray"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs"; Description: "Language Interfaces"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\lua"; Description: "Lua"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\lua\luawdk"; Description: "Lua-WDK"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\perl"; Description: "Perl"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\python"; Description: "Python"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\tcl"; Description: "Tcl"; Types: full custom; Flags: disablenouninstallwarning + +[Tasks] +Name: portable; Description: "Yes"; GroupDescription: "Portable Install (no Registry entries, no Start Menu icons, no uninstaller):"; Flags: unchecked + +Name: perl512; Description: "5.12"; GroupDescription: "Perl version:"; Flags: exclusive; Components: langs\perl +Name: perl514; Description: "5.14"; GroupDescription: "Perl version:"; Flags: exclusive unchecked; Components: langs\perl +Name: perl516; Description: "5.16"; GroupDescription: "Perl version:"; Flags: exclusive unchecked; Components: langs\perl + +[Registry] +Root: HKCR; Subkey: "irc"; ValueType: none; ValueName: ""; ValueData: ""; Flags: deletekey uninsdeletekey; Tasks: not portable +Root: HKCR; Subkey: "irc"; ValueType: string; ValueName: ""; ValueData: "URL:IRC Protocol"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc"; ValueType: string; ValueName: "URL Protocol"; ValueData: ""; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\xchat.exe,0"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\shell"; ValueType: string; ValueName: ""; ValueData: "open"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: "{app}\xchat.exe --url=""%1"""; Flags: uninsdeletevalue; Tasks: not portable + +[Run] +Filename: "{app}\xchat.exe"; Description: "Run XChat-WDK after closing the Wizard"; Flags: nowait postinstall skipifsilent + +[Files] +; Add the ISSkin DLL used for skinning Inno Setup installations. +Source: ISSkinU.dll; DestDir: {app}; Flags: dontcopy + +; Add the Visual Style resource contains resources used for skinning, +; you can also use Microsoft Visual Styles (*.msstyles) resources. +Source: watercolorlite-green.cjstyles; DestDir: {tmp}; Flags: dontcopy + +Source: "portable-mode"; DestDir: "{app}"; Tasks: portable + +Source: "cert.pem"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "COPYING"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.OPENSSL"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.ZLIB"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.GTK"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.CAIRO"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.LUA"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.ENCHANT"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.LIBXML"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "etc\gtk-2.0\gtkrc"; DestDir: "{app}\etc\gtk-2.0"; Flags: ignoreversion; Components: libs +;Source: "etc\gtk-2.0\gtkrc"; DestDir: "{app}\etc\gtk-2.0"; Flags: ignoreversion; Components: libs and not gtkengines +Source: "share\xml\*"; DestDir: "{app}\share\xml"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: libs +Source: "locale\*"; DestDir: "{app}\locale"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: translations +Source: "share\locale\*"; DestDir: "{app}\share\locale"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: translations +;Source: "share\myspell\*"; DestDir: "{app}\share\myspell"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: spelling + +Source: "libatk-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libcairo-2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libeay32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libexpat-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libffi-5.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "freetype6.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libfreetype-6.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libfontconfig-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgdk_pixbuf-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgdk-win32-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgio-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libglib-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgmodule-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgobject-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgthread-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgtk-win32-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "intl.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libintl-8.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libjasper-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libjpeg-8.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpango-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpangocairo-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpangoft2-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpangowin32-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libpixman-1-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libtiff-3.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpng14-14.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libpng15-15.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "lua51.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "ssleay32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "zlib1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libxml2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libxml2-2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libenchant.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs + +Source: "lib\enchant\libenchant_myspell.dll"; DestDir: "{app}\lib\enchant"; Flags: ignoreversion; Components: libs + +Source: "lib\gtk-2.0\2.10.0\engines\libpixmap.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: libs +Source: "lib\gtk-2.0\2.10.0\engines\libwimp.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: libs +Source: "lib\gtk-2.0\modules\libgail.dll"; DestDir: "{app}\lib\gtk-2.0\modules"; Flags: ignoreversion; Components: libs + +;obs Source: "etc\gtkpref.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libclearlooks.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libcrux-engine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libglide.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libhcengine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libindustrial.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libmist.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libmurrine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libredmond95.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libthinice.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "plugins\xcgtkpref.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: gtkengines +;obs Source: "share\themes\*"; DestDir: "{app}\share\themes"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: gtkengines +;obs Source: "gtk2-prefs.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: gtkengines + +Source: "plugins\xcchecksum.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\checksum +Source: "plugins\xcdns.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\dns +Source: "plugins\xcdoat.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\doat +Source: "plugins\xcexec.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\exec +Source: "plugins\xcfishlim.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\fishlim +Source: "etc\music.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\winamp or plugins\mpcinfo +Source: "plugins\xcmpcinfo.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\mpcinfo +;Source: "plugins\xcnonbmp.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\nonbmp +Source: "etc\download.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\upd +Source: "plugins\xcupd.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\upd +Source: "plugins\xcwinamp.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\winamp +Source: "etc\system.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\winsys +Source: "plugins\xcwinsys.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\winsys +Source: "plugins\xcxsasl.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\xsasl +Source: "plugins\xtray.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\xtray +Source: "plugins\xcwmpa.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\wmpa + +Source: "plugins\xclua.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\lua +Source: "plugins\xcpython.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\python +Source: "plugins\xctcl.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\tcl + +Source: "plugins\xcperl-512.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Flags: ignoreversion; Components: langs\perl; Tasks: perl512 +Source: "plugins\xcperl-514.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Flags: ignoreversion; Components: langs\perl; Tasks: perl514 +Source: "plugins\xcperl-516.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Flags: ignoreversion; Components: langs\perl; Tasks: perl516 + +Source: "xchat.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "xchat-text.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: xctext + +[Icons] +Name: "{group}\XChat-WDK (x86)"; Filename: "{app}\xchat.exe"; Tasks: not portable +Name: "{group}\XChat-Text (x86)"; Filename: "{app}\xchat-text.exe"; Components: xctext; Tasks: not portable +Name: "{group}\Uninstall XChat-WDK (x86)"; Filename: "{uninstallexe}"; Tasks: not portable + +[Messages] +BeveledLabel= XChat-WDK + +[Code] +///////////////////////////////////////////////////////////////////// +// these are required for x86->x64 or reverse upgrades +///////////////////////////////////////////////////////////////////// +function GetUninstallString(): String; +var + sUnInstPath: String; + sUnInstallString: String; +begin + sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\XChat-WDK (x86)_is1'); + sUnInstallString := ''; + if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then + RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString); + Result := sUnInstallString; +end; + + +///////////////////////////////////////////////////////////////////// +function IsUpgrade(): Boolean; +begin + Result := (GetUninstallString() <> ''); +end; + + +///////////////////////////////////////////////////////////////////// +function UnInstallOldVersion(): Integer; +var + sUnInstallString: String; + iResultCode: Integer; +begin +// Return Values: +// 1 - uninstall string is empty +// 2 - error executing the UnInstallString +// 3 - successfully executed the UnInstallString + + // default return value + Result := 0; + + // get the uninstall string of the old app + sUnInstallString := GetUninstallString(); + if sUnInstallString <> '' then begin + sUnInstallString := RemoveQuotes(sUnInstallString); + if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then + Result := 3 + else + Result := 2; + end else + Result := 1; +end; + +///////////////////////////////////////////////////////////////////// +procedure CurStepChanged(CurStep: TSetupStep); +begin + if not (IsTaskSelected('portable')) then + begin + if (CurStep=ssInstall) then + begin + if (IsUpgrade()) then + begin + UnInstallOldVersion(); + end; + end; + end; +end; + +///////////////////////////////////////////////////////////////////// +// Importing LoadSkin API from ISSkin.DLL +procedure LoadSkin(lpszPath: String; lpszIniFileName: String); +external 'LoadSkin@files:isskinu.dll stdcall'; + +// Importing UnloadSkin API from ISSkin.DLL +procedure UnloadSkin(); +external 'UnloadSkin@files:isskinu.dll stdcall'; + +// Importing ShowWindow Windows API from User32.DLL +function ShowWindow(hWnd: Integer; uType: Integer): Integer; +external 'ShowWindow@user32.dll stdcall'; + +function InitializeSetup(): Boolean; +begin + ExtractTemporaryFile('watercolorlite-green.cjstyles'); + LoadSkin(ExpandConstant('{tmp}\watercolorlite-green.cjstyles'), ''); + Result := True; +end; + +procedure DeinitializeSetup(); +begin + // Hide Window before unloading skin so user does not get + // a glimpse of an unskinned window before it is closed. + ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0); + UnloadSkin(); +end; diff --git a/win32/isskin/watercolorlite-blue.cjstyles b/win32/isskin/watercolorlite-blue.cjstyles deleted file mode 100644 index a457029b..00000000 Binary files a/win32/isskin/watercolorlite-blue.cjstyles and /dev/null differ diff --git a/win32/isskin/watercolorlite-green.cjstyles b/win32/isskin/watercolorlite-green.cjstyles deleted file mode 100644 index 2b77026d..00000000 Binary files a/win32/isskin/watercolorlite-green.cjstyles and /dev/null differ diff --git a/win32/nls/nls.vcxproj b/win32/nls/nls.vcxproj index a9fa71bf..10e53bd8 100644 --- a/win32/nls/nls.vcxproj +++ b/win32/nls/nls.vcxproj @@ -26,7 +26,10 @@ - + + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level3 @@ -45,11 +48,11 @@ cd ..\..\po -rmdir /q /s locale -mkdir locale +rmdir /q /s "$(OutDir)\locale" +mkdir "$(OutDir)\locale" for %%A in (*.po) do ( -mkdir locale\%%~nA\LC_MESSAGES -"$(DepsRoot)\bin\msgfmt" -co locale\%%~nA\LC_MESSAGES\xchat.mo %%A +mkdir "$(OutDir)\locale\%%~nA\LC_MESSAGES" +"$(DepsRoot)\bin\msgfmt" -co "$(OutDir)\locale\%%~nA\LC_MESSAGES\xchat.mo" %%A ) diff --git a/win32/share/themes/Murrine/gtk-2.0/gtkrc b/win32/share/themes/Murrine/gtk-2.0/gtkrc deleted file mode 100644 index b9d95848..00000000 --- a/win32/share/themes/Murrine/gtk-2.0/gtkrc +++ /dev/null @@ -1,7 +0,0 @@ -style "default" -{ - engine "murrine" - { - } -} -class "*" style "default" diff --git a/win32/share/xml/iso-codes/iso_3166.xml b/win32/share/xml/iso-codes/iso_3166.xml deleted file mode 100644 index 77c72eb2..00000000 --- a/win32/share/xml/iso-codes/iso_3166.xml +++ /dev/null @@ -1,1703 +0,0 @@ - - - - - - - - - -]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/win32/share/xml/iso-codes/iso_639.xml b/win32/share/xml/iso-codes/iso_639.xml deleted file mode 100644 index 02fa01fb..00000000 --- a/win32/share/xml/iso-codes/iso_639.xml +++ /dev/null @@ -1,2169 +0,0 @@ - - - - - - - -]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/win32/xchat-wdk-x64.skel.iss b/win32/xchat-wdk-x64.skel.iss deleted file mode 100644 index 1caf8198..00000000 --- a/win32/xchat-wdk-x64.skel.iss +++ /dev/null @@ -1,279 +0,0 @@ -AppName=XChat-WDK (x64) -AppPublisher=XChat-WDK -AppPublisherURL=http://www.xchat-wdk.org/ -AppCopyright=Copyright (C) 1998-2010 Peter Zelezny -AppSupportURL=http://code.google.com/p/xchat-wdk/issues/list -AppUpdatesURL=http://www.xchat-wdk.org/home/downloads -LicenseFile=COPYING -UninstallDisplayIcon={app}\xchat.exe -UninstallDisplayName=XChat-WDK (x64) -DefaultDirName={pf}\XChat-WDK -DefaultGroupName=XChat-WDK -DisableProgramGroupPage=yes -SolidCompression=yes -SourceDir=dist-x64 -OutputDir=..\ -FlatComponentsList=no -PrivilegesRequired=none -ShowComponentSizes=no -CreateUninstallRegKey=not IsTaskSelected('portable') -Uninstallable=not IsTaskSelected('portable') -ArchitecturesAllowed=x64 -ArchitecturesInstallIn64BitMode=x64 - -[Types] -Name: "normal"; Description: "Normal Installation" -Name: "full"; Description: "Full Installation" -Name: "minimal"; Description: "Minimal Installation" -Name: "custom"; Description: "Custom Installation"; Flags: iscustom - -[Components] -Name: "libs"; Description: "XChat-WDK"; Types: normal full minimal custom; Flags: fixed -Name: "xctext"; Description: "XChat-Text"; Types: full custom; Flags: disablenouninstallwarning -Name: "translations"; Description: "Translations"; Types: normal full custom; Flags: disablenouninstallwarning -;obs Name: "gtkengines"; Description: "GTK+ Engines"; Types: full custom; Flags: disablenouninstallwarning -;Name: "spelling"; Description: "Spelling Dictionaries"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins"; Description: "Plugins"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\checksum"; Description: "Checksum"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\dns"; Description: "DNS"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\doat"; Description: "Do At"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\exec"; Description: "Exec"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\fishlim"; Description: "FiSHLiM"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\mpcinfo"; Description: "mpcInfo"; Types: full custom; Flags: disablenouninstallwarning -;Name: "plugins\nonbmp"; Description: "Non-BMP"; Types: normal full custom; Flags: disablenouninstallwarning -Name: "plugins\upd"; Description: "Update Checker"; Types: normal full custom; Flags: disablenouninstallwarning -Name: "plugins\winamp"; Description: "Winamp"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\winsys"; Description: "WinSys"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\wmpa"; Description: "Windows Media Player Announcer"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\xsasl"; Description: "X-SASL"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\xtray"; Description: "X-Tray"; Types: full custom; Flags: disablenouninstallwarning -Name: "langs"; Description: "Language Interfaces"; Types: full custom; Flags: disablenouninstallwarning -Name: "langs\lua"; Description: "Lua"; Types: full custom; Flags: disablenouninstallwarning -Name: "langs\lua\luawdk"; Description: "Lua-WDK"; Types: full custom; Flags: disablenouninstallwarning -Name: "langs\perl"; Description: "Perl"; Types: full custom; Flags: disablenouninstallwarning -Name: "langs\python"; Description: "Python"; Types: full custom; Flags: disablenouninstallwarning -Name: "langs\tcl"; Description: "Tcl"; Types: full custom; Flags: disablenouninstallwarning - -[Tasks] -Name: portable; Description: "Yes"; GroupDescription: "Portable Install (no Registry entries, no Start Menu icons, no uninstaller):"; Flags: unchecked - -Name: perl512; Description: "5.12"; GroupDescription: "Perl version:"; Flags: exclusive; Components: langs\perl -Name: perl514; Description: "5.14"; GroupDescription: "Perl version:"; Flags: exclusive unchecked; Components: langs\perl - -[Registry] -Root: HKCR; Subkey: "irc"; ValueType: none; ValueName: ""; ValueData: ""; Flags: deletekey uninsdeletekey; Tasks: not portable -Root: HKCR; Subkey: "irc"; ValueType: string; ValueName: ""; ValueData: "URL:IRC Protocol"; Flags: uninsdeletevalue; Tasks: not portable -Root: HKCR; Subkey: "irc"; ValueType: string; ValueName: "URL Protocol"; ValueData: ""; Flags: uninsdeletevalue; Tasks: not portable -Root: HKCR; Subkey: "irc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\xchat.exe,0"; Flags: uninsdeletevalue; Tasks: not portable -Root: HKCR; Subkey: "irc\shell"; ValueType: string; ValueName: ""; ValueData: "open"; Flags: uninsdeletevalue; Tasks: not portable -Root: HKCR; Subkey: "irc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: "{app}\xchat.exe --url=""%1"""; Flags: uninsdeletevalue; Tasks: not portable - -[Run] -Filename: "{app}\xchat.exe"; Description: "Run XChat-WDK after closing the Wizard"; Flags: nowait postinstall skipifsilent - -[Files] -; Add the ISSkin DLL used for skinning Inno Setup installations. -Source: ISSkinU.dll; DestDir: {app}; Flags: dontcopy - -; Add the Visual Style resource contains resources used for skinning, -; you can also use Microsoft Visual Styles (*.msstyles) resources. -Source: watercolorlite-blue.cjstyles; DestDir: {tmp}; Flags: dontcopy - -Source: "portable-mode"; DestDir: "{app}"; Tasks: portable - -Source: "cert.pem"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "COPYING"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "LICENSE.OPENSSL"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "LICENSE.ZLIB"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "LICENSE.GTK"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "LICENSE.CAIRO"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "LICENSE.LUA"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "LICENSE.ENCHANT"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "LICENSE.LIBXML"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "etc\gtk-2.0\gtkrc"; DestDir: "{app}\etc\gtk-2.0"; Flags: ignoreversion; Components: libs -;Source: "etc\gtk-2.0\gtkrc"; DestDir: "{app}\etc\gtk-2.0"; Flags: ignoreversion; Components: libs and not gtkengines -Source: "share\xml\*"; DestDir: "{app}\share\xml"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: libs -Source: "locale\*"; DestDir: "{app}\locale"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: translations -Source: "share\locale\*"; DestDir: "{app}\share\locale"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: translations -;Source: "share\myspell\*"; DestDir: "{app}\share\myspell"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: spelling - -Source: "libatk-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libcairo-2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libeay32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libexpat-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -;obs Source: "libffi-5.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libfreetype-6.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libfontconfig-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libgdk_pixbuf-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libgdk-win32-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libgio-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libglib-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libgmodule-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libgobject-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libgthread-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libgtk-win32-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libintl-8.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -;obs Source: "libjasper-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -;obs Source: "libjpeg-8.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libpango-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libpangocairo-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libpangoft2-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libpangowin32-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -;obs Source: "libpixman-1-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -;obs Source: "libtiff-3.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libpng14-14.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -;obs Source: "libpng15-15.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "lua51.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "ssleay32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "zlib1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libxml2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -;obs Source: "libxml2-2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libenchant.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs - -Source: "lib\enchant\libenchant_myspell.dll"; DestDir: "{app}\lib\enchant"; Flags: ignoreversion; Components: libs - -Source: "lib\gtk-2.0\2.10.0\engines\libpixmap.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: libs -Source: "lib\gtk-2.0\2.10.0\engines\libwimp.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: libs -Source: "lib\gtk-2.0\modules\libgail.dll"; DestDir: "{app}\lib\gtk-2.0\modules"; Flags: ignoreversion; Components: libs - -;obs Source: "etc\gtkpref.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libclearlooks.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libcrux-engine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libglide.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libhcengine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libindustrial.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libmist.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libmurrine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libredmond95.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libthinice.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "plugins\xcgtkpref.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: gtkengines -;obs Source: "share\themes\*"; DestDir: "{app}\share\themes"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: gtkengines -;obs Source: "gtk2-prefs.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: gtkengines - -Source: "plugins\xcchecksum.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\checksum -Source: "plugins\xcdns.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\dns -Source: "plugins\xcdoat.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\doat -Source: "plugins\xcexec.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\exec -Source: "plugins\xcfishlim.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\fishlim -Source: "etc\music.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\winamp or plugins\mpcinfo -Source: "plugins\xcmpcinfo.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\mpcinfo -;Source: "plugins\xcnonbmp.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\nonbmp -Source: "etc\download.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\upd -Source: "plugins\xcupd.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\upd -Source: "plugins\xcwinamp.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\winamp -Source: "etc\system.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\winsys -Source: "plugins\xcwinsys.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\winsys -Source: "plugins\xcxsasl.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\xsasl -Source: "plugins\xtray.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\xtray -Source: "plugins\xcwmpa.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\wmpa - -Source: "plugins\xclua.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\lua -Source: "plugins\xcpython.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\python -Source: "plugins\xctcl.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\tcl - -Source: "plugins\xcperl-512.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Flags: ignoreversion; Components: langs\perl; Tasks: perl512 -Source: "plugins\xcperl-514.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Flags: ignoreversion; Components: langs\perl; Tasks: perl514 - -Source: "xchat.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "xchat-text.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: xctext - -[Icons] -Name: "{group}\XChat-WDK (x64)"; Filename: "{app}\xchat.exe"; Tasks: not portable -Name: "{group}\XChat-Text (x64)"; Filename: "{app}\xchat-text.exe"; Components: xctext; Tasks: not portable -Name: "{group}\Uninstall XChat-WDK (x64)"; Filename: "{uninstallexe}"; Tasks: not portable - -[Messages] -BeveledLabel= XChat-WDK - -[Code] -///////////////////////////////////////////////////////////////////// -// these are required for x86->x64 or reverse upgrades -///////////////////////////////////////////////////////////////////// -function GetUninstallString(): String; -var - sUnInstPath: String; - sUnInstallString: String; -begin - sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\XChat-WDK (x64)_is1'); - sUnInstallString := ''; - if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then - RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString); - Result := sUnInstallString; -end; - - -///////////////////////////////////////////////////////////////////// -function IsUpgrade(): Boolean; -begin - Result := (GetUninstallString() <> ''); -end; - - -///////////////////////////////////////////////////////////////////// -function UnInstallOldVersion(): Integer; -var - sUnInstallString: String; - iResultCode: Integer; -begin -// Return Values: -// 1 - uninstall string is empty -// 2 - error executing the UnInstallString -// 3 - successfully executed the UnInstallString - - // default return value - Result := 0; - - // get the uninstall string of the old app - sUnInstallString := GetUninstallString(); - if sUnInstallString <> '' then begin - sUnInstallString := RemoveQuotes(sUnInstallString); - if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then - Result := 3 - else - Result := 2; - end else - Result := 1; -end; - -///////////////////////////////////////////////////////////////////// -procedure CurStepChanged(CurStep: TSetupStep); -begin - if not (IsTaskSelected('portable')) then - begin - if (CurStep=ssInstall) then - begin - if (IsUpgrade()) then - begin - UnInstallOldVersion(); - end; - end; - end; -end; - -///////////////////////////////////////////////////////////////////// -// Importing LoadSkin API from ISSkin.DLL -procedure LoadSkin(lpszPath: String; lpszIniFileName: String); -external 'LoadSkin@files:isskinu.dll stdcall'; - -// Importing UnloadSkin API from ISSkin.DLL -procedure UnloadSkin(); -external 'UnloadSkin@files:isskinu.dll stdcall'; - -// Importing ShowWindow Windows API from User32.DLL -function ShowWindow(hWnd: Integer; uType: Integer): Integer; -external 'ShowWindow@user32.dll stdcall'; - -function InitializeSetup(): Boolean; -begin - ExtractTemporaryFile('watercolorlite-blue.cjstyles'); - LoadSkin(ExpandConstant('{tmp}\watercolorlite-blue.cjstyles'), ''); - Result := True; -end; - -procedure DeinitializeSetup(); -begin - // Hide Window before unloading skin so user does not get - // a glimpse of an unskinned window before it is closed. - ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0); - UnloadSkin(); -end; diff --git a/win32/xchat-wdk-x86.skel.iss b/win32/xchat-wdk-x86.skel.iss deleted file mode 100644 index 511a29f8..00000000 --- a/win32/xchat-wdk-x86.skel.iss +++ /dev/null @@ -1,282 +0,0 @@ -AppName=XChat-WDK (x86) -AppPublisher=XChat-WDK -AppPublisherURL=http://www.xchat-wdk.org/ -AppCopyright=Copyright (C) 1998-2010 Peter Zelezny -AppSupportURL=http://code.google.com/p/xchat-wdk/issues/list -AppUpdatesURL=http://www.xchat-wdk.org/home/downloads -LicenseFile=COPYING -UninstallDisplayIcon={app}\xchat.exe -UninstallDisplayName=XChat-WDK (x86) -DefaultDirName={pf}\XChat-WDK -DefaultGroupName=XChat-WDK -DisableProgramGroupPage=yes -SolidCompression=yes -SourceDir=dist\Win32 -OutputDir=..\ -FlatComponentsList=no -PrivilegesRequired=none -ShowComponentSizes=no -CreateUninstallRegKey=not IsTaskSelected('portable') -Uninstallable=not IsTaskSelected('portable') -ArchitecturesAllowed=x86 x64 - -[Types] -Name: "normal"; Description: "Normal Installation" -Name: "full"; Description: "Full Installation" -Name: "minimal"; Description: "Minimal Installation" -Name: "custom"; Description: "Custom Installation"; Flags: iscustom - -[Components] -Name: "libs"; Description: "XChat-WDK"; Types: normal full minimal custom; Flags: fixed -Name: "xctext"; Description: "XChat-Text"; Types: full custom; Flags: disablenouninstallwarning -Name: "translations"; Description: "Translations"; Types: normal full custom; Flags: disablenouninstallwarning -;obs Name: "gtkengines"; Description: "GTK+ Engines"; Types: full custom; Flags: disablenouninstallwarning -;Name: "spelling"; Description: "Spelling Dictionaries"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins"; Description: "Plugins"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\checksum"; Description: "Checksum"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\dns"; Description: "DNS"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\doat"; Description: "Do At"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\exec"; Description: "Exec"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\fishlim"; Description: "FiSHLiM"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\mpcinfo"; Description: "mpcInfo"; Types: full custom; Flags: disablenouninstallwarning -;Name: "plugins\nonbmp"; Description: "Non-BMP"; Types: normal full custom; Flags: disablenouninstallwarning -Name: "plugins\upd"; Description: "Update Checker"; Types: normal full custom; Flags: disablenouninstallwarning -Name: "plugins\winamp"; Description: "Winamp"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\winsys"; Description: "WinSys"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\wmpa"; Description: "Windows Media Player Announcer"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\xsasl"; Description: "X-SASL"; Types: full custom; Flags: disablenouninstallwarning -Name: "plugins\xtray"; Description: "X-Tray"; Types: full custom; Flags: disablenouninstallwarning -Name: "langs"; Description: "Language Interfaces"; Types: full custom; Flags: disablenouninstallwarning -Name: "langs\lua"; Description: "Lua"; Types: full custom; Flags: disablenouninstallwarning -Name: "langs\lua\luawdk"; Description: "Lua-WDK"; Types: full custom; Flags: disablenouninstallwarning -Name: "langs\perl"; Description: "Perl"; Types: full custom; Flags: disablenouninstallwarning -Name: "langs\python"; Description: "Python"; Types: full custom; Flags: disablenouninstallwarning -Name: "langs\tcl"; Description: "Tcl"; Types: full custom; Flags: disablenouninstallwarning - -[Tasks] -Name: portable; Description: "Yes"; GroupDescription: "Portable Install (no Registry entries, no Start Menu icons, no uninstaller):"; Flags: unchecked - -Name: perl512; Description: "5.12"; GroupDescription: "Perl version:"; Flags: exclusive; Components: langs\perl -Name: perl514; Description: "5.14"; GroupDescription: "Perl version:"; Flags: exclusive unchecked; Components: langs\perl -Name: perl516; Description: "5.16"; GroupDescription: "Perl version:"; Flags: exclusive unchecked; Components: langs\perl - -[Registry] -Root: HKCR; Subkey: "irc"; ValueType: none; ValueName: ""; ValueData: ""; Flags: deletekey uninsdeletekey; Tasks: not portable -Root: HKCR; Subkey: "irc"; ValueType: string; ValueName: ""; ValueData: "URL:IRC Protocol"; Flags: uninsdeletevalue; Tasks: not portable -Root: HKCR; Subkey: "irc"; ValueType: string; ValueName: "URL Protocol"; ValueData: ""; Flags: uninsdeletevalue; Tasks: not portable -Root: HKCR; Subkey: "irc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\xchat.exe,0"; Flags: uninsdeletevalue; Tasks: not portable -Root: HKCR; Subkey: "irc\shell"; ValueType: string; ValueName: ""; ValueData: "open"; Flags: uninsdeletevalue; Tasks: not portable -Root: HKCR; Subkey: "irc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: "{app}\xchat.exe --url=""%1"""; Flags: uninsdeletevalue; Tasks: not portable - -[Run] -Filename: "{app}\xchat.exe"; Description: "Run XChat-WDK after closing the Wizard"; Flags: nowait postinstall skipifsilent - -[Files] -; Add the ISSkin DLL used for skinning Inno Setup installations. -Source: ISSkinU.dll; DestDir: {app}; Flags: dontcopy - -; Add the Visual Style resource contains resources used for skinning, -; you can also use Microsoft Visual Styles (*.msstyles) resources. -Source: watercolorlite-green.cjstyles; DestDir: {tmp}; Flags: dontcopy - -Source: "portable-mode"; DestDir: "{app}"; Tasks: portable - -Source: "cert.pem"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "COPYING"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "LICENSE.OPENSSL"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "LICENSE.ZLIB"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "LICENSE.GTK"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "LICENSE.CAIRO"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "LICENSE.LUA"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "LICENSE.ENCHANT"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "LICENSE.LIBXML"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "etc\gtk-2.0\gtkrc"; DestDir: "{app}\etc\gtk-2.0"; Flags: ignoreversion; Components: libs -;Source: "etc\gtk-2.0\gtkrc"; DestDir: "{app}\etc\gtk-2.0"; Flags: ignoreversion; Components: libs and not gtkengines -Source: "share\xml\*"; DestDir: "{app}\share\xml"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: libs -Source: "locale\*"; DestDir: "{app}\locale"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: translations -Source: "share\locale\*"; DestDir: "{app}\share\locale"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: translations -;Source: "share\myspell\*"; DestDir: "{app}\share\myspell"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: spelling - -Source: "libatk-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libcairo-2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libeay32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libexpat-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -;obs Source: "libffi-5.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "freetype6.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -;obs Source: "libfreetype-6.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libfontconfig-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libgdk_pixbuf-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libgdk-win32-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libgio-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libglib-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libgmodule-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libgobject-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libgthread-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libgtk-win32-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "intl.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -;obs Source: "libintl-8.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -;obs Source: "libjasper-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -;obs Source: "libjpeg-8.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libpango-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libpangocairo-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libpangoft2-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libpangowin32-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -;obs Source: "libpixman-1-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -;obs Source: "libtiff-3.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libpng14-14.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -;obs Source: "libpng15-15.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "lua51.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "ssleay32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "zlib1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libxml2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -;obs Source: "libxml2-2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "libenchant.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs - -Source: "lib\enchant\libenchant_myspell.dll"; DestDir: "{app}\lib\enchant"; Flags: ignoreversion; Components: libs - -Source: "lib\gtk-2.0\2.10.0\engines\libpixmap.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: libs -Source: "lib\gtk-2.0\2.10.0\engines\libwimp.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: libs -Source: "lib\gtk-2.0\modules\libgail.dll"; DestDir: "{app}\lib\gtk-2.0\modules"; Flags: ignoreversion; Components: libs - -;obs Source: "etc\gtkpref.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libclearlooks.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libcrux-engine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libglide.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libhcengine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libindustrial.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libmist.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libmurrine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libredmond95.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "lib\gtk-2.0\2.10.0\engines\libthinice.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines -;obs Source: "plugins\xcgtkpref.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: gtkengines -;obs Source: "share\themes\*"; DestDir: "{app}\share\themes"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: gtkengines -;obs Source: "gtk2-prefs.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: gtkengines - -Source: "plugins\xcchecksum.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\checksum -Source: "plugins\xcdns.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\dns -Source: "plugins\xcdoat.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\doat -Source: "plugins\xcexec.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\exec -Source: "plugins\xcfishlim.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\fishlim -Source: "etc\music.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\winamp or plugins\mpcinfo -Source: "plugins\xcmpcinfo.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\mpcinfo -;Source: "plugins\xcnonbmp.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\nonbmp -Source: "etc\download.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\upd -Source: "plugins\xcupd.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\upd -Source: "plugins\xcwinamp.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\winamp -Source: "etc\system.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\winsys -Source: "plugins\xcwinsys.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\winsys -Source: "plugins\xcxsasl.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\xsasl -Source: "plugins\xtray.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\xtray -Source: "plugins\xcwmpa.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\wmpa - -Source: "plugins\xclua.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\lua -Source: "plugins\xcpython.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\python -Source: "plugins\xctcl.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\tcl - -Source: "plugins\xcperl-512.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Flags: ignoreversion; Components: langs\perl; Tasks: perl512 -Source: "plugins\xcperl-514.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Flags: ignoreversion; Components: langs\perl; Tasks: perl514 -Source: "plugins\xcperl-516.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Flags: ignoreversion; Components: langs\perl; Tasks: perl516 - -Source: "xchat.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: libs -Source: "xchat-text.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: xctext - -[Icons] -Name: "{group}\XChat-WDK (x86)"; Filename: "{app}\xchat.exe"; Tasks: not portable -Name: "{group}\XChat-Text (x86)"; Filename: "{app}\xchat-text.exe"; Components: xctext; Tasks: not portable -Name: "{group}\Uninstall XChat-WDK (x86)"; Filename: "{uninstallexe}"; Tasks: not portable - -[Messages] -BeveledLabel= XChat-WDK - -[Code] -///////////////////////////////////////////////////////////////////// -// these are required for x86->x64 or reverse upgrades -///////////////////////////////////////////////////////////////////// -function GetUninstallString(): String; -var - sUnInstPath: String; - sUnInstallString: String; -begin - sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\XChat-WDK (x86)_is1'); - sUnInstallString := ''; - if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then - RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString); - Result := sUnInstallString; -end; - - -///////////////////////////////////////////////////////////////////// -function IsUpgrade(): Boolean; -begin - Result := (GetUninstallString() <> ''); -end; - - -///////////////////////////////////////////////////////////////////// -function UnInstallOldVersion(): Integer; -var - sUnInstallString: String; - iResultCode: Integer; -begin -// Return Values: -// 1 - uninstall string is empty -// 2 - error executing the UnInstallString -// 3 - successfully executed the UnInstallString - - // default return value - Result := 0; - - // get the uninstall string of the old app - sUnInstallString := GetUninstallString(); - if sUnInstallString <> '' then begin - sUnInstallString := RemoveQuotes(sUnInstallString); - if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then - Result := 3 - else - Result := 2; - end else - Result := 1; -end; - -///////////////////////////////////////////////////////////////////// -procedure CurStepChanged(CurStep: TSetupStep); -begin - if not (IsTaskSelected('portable')) then - begin - if (CurStep=ssInstall) then - begin - if (IsUpgrade()) then - begin - UnInstallOldVersion(); - end; - end; - end; -end; - -///////////////////////////////////////////////////////////////////// -// Importing LoadSkin API from ISSkin.DLL -procedure LoadSkin(lpszPath: String; lpszIniFileName: String); -external 'LoadSkin@files:isskinu.dll stdcall'; - -// Importing UnloadSkin API from ISSkin.DLL -procedure UnloadSkin(); -external 'UnloadSkin@files:isskinu.dll stdcall'; - -// Importing ShowWindow Windows API from User32.DLL -function ShowWindow(hWnd: Integer; uType: Integer): Integer; -external 'ShowWindow@user32.dll stdcall'; - -function InitializeSetup(): Boolean; -begin - ExtractTemporaryFile('watercolorlite-green.cjstyles'); - LoadSkin(ExpandConstant('{tmp}\watercolorlite-green.cjstyles'), ''); - Result := True; -end; - -procedure DeinitializeSetup(); -begin - // Hide Window before unloading skin so user does not get - // a glimpse of an unskinned window before it is closed. - ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0); - UnloadSkin(); -end; diff --git a/win32/xchat.props b/win32/xchat.props index e0aa21c8..3038fb04 100644 --- a/win32/xchat.props +++ b/win32/xchat.props @@ -35,7 +35,7 @@ $(DepsRoot)\include\gtk-2.0;$(DepsRoot)\lib\gtk-2.0\include;$(DepsRoot)\include\atk-1.0;$(DepsRoot)\include\cairo;$(DepsRoot)\include\pango-1.0;$(DepsRoot)\include\gdk-pixbuf-2.0 bookpng "$(SolutionDir)\..\src\pixmaps\book.png" hoppng "$(SolutionDir)\..\src\pixmaps\hop.png" oppng "$(SolutionDir)\..\src\pixmaps\op.png" purplepng "$(SolutionDir)\..\src\pixmaps\purple.png" redpng "$(SolutionDir)\..\src\pixmaps\red.png" trayfilepng "$(SolutionDir)\..\src\pixmaps\fileoffer.png" trayhilightpng "$(SolutionDir)\..\src\pixmaps\highlight.png" traymsgpng "$(SolutionDir)\..\src\pixmaps\message.png" voicepng "$(SolutionDir)\..\src\pixmaps\voice.png" xchatpng "$(SolutionDir)\..\xchat.png" gtk-win32-2.0.lib;gdk-win32-2.0.lib;atk-1.0.lib;gio-2.0.lib;gdk_pixbuf-2.0.lib;pangowin32-1.0.lib;pangocairo-1.0.lib;pango-1.0.lib;cairo.lib;gobject-2.0.lib;gmodule-2.0.lib;glib-2.0.lib;intl.lib;libxml2.lib;libeay32.lib;ssleay32.lib;wininet.lib;winmm.lib;ws2_32.lib - $(SolutionDir)\dist\$(PlatformName) + $(SolutionDir)build\$(PlatformName)\rel diff --git a/win32/xchat.sln b/win32/xchat.sln index 050313eb..84e1190e 100644 --- a/win32/xchat.sln +++ b/win32/xchat.sln @@ -89,10 +89,32 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nls", "nls\nls.vcxproj", "{B10A2C41-344C-43E0-A32D-B9587C198D8B}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "copy", "copy\copy.vcxproj", "{C9B735E4-75BC-45AC-A5E3-39A6D076F912}" + ProjectSection(ProjectDependencies) = postProject + {19C52A0A-A790-409E-A28A-9745FF990F5C} = {19C52A0A-A790-409E-A28A-9745FF990F5C} + {E7F4DB0A-510D-41EF-B284-6E1DE1CC450D} = {E7F4DB0A-510D-41EF-B284-6E1DE1CC450D} + {646B4316-C8B8-4DB6-B6AE-E586929E5729} = {646B4316-C8B8-4DB6-B6AE-E586929E5729} + {4980AF24-9D42-427D-A8E6-0DF3B97C455D} = {4980AF24-9D42-427D-A8E6-0DF3B97C455D} + {3024CF36-85E5-4E00-9608-7002E2C7EF14} = {3024CF36-85E5-4E00-9608-7002E2C7EF14} + {58654438-F674-42F7-88FA-73EF90AD80B1} = {58654438-F674-42F7-88FA-73EF90AD80B1} + {17E4BE39-76F7-4A06-AD21-EFD0C5091F76} = {17E4BE39-76F7-4A06-AD21-EFD0C5091F76} + {B10A2C41-344C-43E0-A32D-B9587C198D8B} = {B10A2C41-344C-43E0-A32D-B9587C198D8B} + {461DC24A-A410-4171-8C02-CCDBF3702C2A} = {461DC24A-A410-4171-8C02-CCDBF3702C2A} + {E93E1255-95D1-4B08-8FDF-B53CC6A21280} = {E93E1255-95D1-4B08-8FDF-B53CC6A21280} + {2773666A-8CFC-4533-A043-EAD59F16A1C7} = {2773666A-8CFC-4533-A043-EAD59F16A1C7} + {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0} = {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0} + {987E9374-98A1-44BA-946F-D3472D7A7055} = {987E9374-98A1-44BA-946F-D3472D7A7055} + {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91} = {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91} + {6C0CA980-97C5-427A-BE61-5BCECAFABBDA} = {6C0CA980-97C5-427A-BE61-5BCECAFABBDA} + {3786FA8C-3E76-45E3-984E-FCCFF44729C9} = {3786FA8C-3E76-45E3-984E-FCCFF44729C9} + {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC} = {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC} + {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE} = {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE} + {18871EBA-AC85-4652-8919-EB8064B9A714} = {18871EBA-AC85-4652-8919-EB8064B9A714} + {E4BDB4C8-2335-415A-ACEE-BA88B19BFE82} = {E4BDB4C8-2335-415A-ACEE-BA88B19BFE82} + {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E} = {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "installer", "installer\installer.vcxproj", "{5A0F4962-E670-4DA2-9E45-52CC47F26E2F}" ProjectSection(ProjectDependencies) = postProject - {B10A2C41-344C-43E0-A32D-B9587C198D8B} = {B10A2C41-344C-43E0-A32D-B9587C198D8B} {C9B735E4-75BC-45AC-A5E3-39A6D076F912} = {C9B735E4-75BC-45AC-A5E3-39A6D076F912} EndProjectSection EndProject -- cgit 1.4.1 From ad59c4a586711f488b31f83072ebdc9ac595366e Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Fri, 15 Jun 2012 22:36:29 +0200 Subject: Add x64 support to the VS solution --- plugins/checksum/checksum.vcxproj | 43 ++++++++++++++++ plugins/dns/dns.vcxproj | 43 ++++++++++++++++ plugins/doat/doat.vcxproj | 41 ++++++++++++++++ plugins/exec/exec.vcxproj | 41 ++++++++++++++++ plugins/fishlim/fishlim.vcxproj | 43 ++++++++++++++++ plugins/lua/lua.vcxproj | 55 +++++++++++++++++++++ plugins/mpcinfo/mpcinfo.vcxproj | 41 ++++++++++++++++ plugins/perl/perl-512.vcxproj | 52 ++++++++++++++++++++ plugins/perl/perl-514.vcxproj | 52 ++++++++++++++++++++ plugins/perl/perl-516.vcxproj | 52 ++++++++++++++++++++ plugins/python/python.vcxproj | 43 ++++++++++++++++ plugins/tcl/tcl.vcxproj | 43 ++++++++++++++++ plugins/upd/upd.vcxproj | 43 ++++++++++++++++ plugins/winamp/winamp.vcxproj | 41 ++++++++++++++++ plugins/winsys/winsys.vcxproj | 44 +++++++++++++++++ plugins/wmpa/wmpa.vcxproj | 43 ++++++++++++++++ plugins/xsasl/xsasl.vcxproj | 43 ++++++++++++++++ plugins/xtray/xtray.vcxproj | 41 ++++++++++++++++ src/common/common.vcxproj | 38 ++++++++++++++ src/dirent/dirent.vcxproj | 38 ++++++++++++++ src/fe-gtk/fe-gtk.vcxproj | 43 ++++++++++++++++ src/fe-text/fe-text.vcxproj | 42 ++++++++++++++++ src/pixmaps/pixmaps.vcxproj | 40 +++++++++++++++ src/version/version.vcxproj | 41 ++++++++++++++++ win32/copy/copy.vcxproj | 101 ++++++++++++++++++++++++++++++++++++++ win32/installer/installer.vcxproj | 44 +++++++++++++++++ win32/nls/nls.vcxproj | 45 +++++++++++++++++ win32/xchat.sln | 55 +++++++++++++++++++++ 28 files changed, 1291 insertions(+) (limited to 'plugins/fishlim') diff --git a/plugins/checksum/checksum.vcxproj b/plugins/checksum/checksum.vcxproj index c4090cd1..753ca10e 100644 --- a/plugins/checksum/checksum.vcxproj +++ b/plugins/checksum/checksum.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91} @@ -19,6 +23,13 @@ MultiByte WDK7 + + DynamicLibrary + false + true + MultiByte + WDK7 + @@ -26,6 +37,10 @@ + + + + false @@ -33,6 +48,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + xcchecksum + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -55,6 +76,28 @@ $(DepLibs);%(AdditionalDependencies) + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;CHECKSUM_EXPORTS;%(PreprocessorDefinitions) + $(DepsRoot)\include;..;%(AdditionalIncludeDirectories) + true + + + Windows + true + true + true + checksum.def + $(DepsRoot)\lib;%(AdditionalLibraryDirectories) + $(DepLibs);%(AdditionalDependencies) + + diff --git a/plugins/dns/dns.vcxproj b/plugins/dns/dns.vcxproj index 38f1634b..64df391d 100644 --- a/plugins/dns/dns.vcxproj +++ b/plugins/dns/dns.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {3786FA8C-3E76-45E3-984E-FCCFF44729C9} @@ -19,6 +23,13 @@ MultiByte WDK7 + + DynamicLibrary + false + true + MultiByte + WDK7 + @@ -26,6 +37,10 @@ + + + + false @@ -33,6 +48,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + xcdns + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -55,6 +76,28 @@ dns.def + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;DNS_EXPORTS;%(PreprocessorDefinitions) + ..;%(AdditionalIncludeDirectories) + true + + + Windows + true + true + true + $(DepsRoot)\lib;%(AdditionalLibraryDirectories) + $(DepLibs);%(AdditionalDependencies) + dns.def + + diff --git a/plugins/doat/doat.vcxproj b/plugins/doat/doat.vcxproj index c6901fe1..33969fc3 100644 --- a/plugins/doat/doat.vcxproj +++ b/plugins/doat/doat.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {4980AF24-9D42-427D-A8E6-0DF3B97C455D} @@ -19,6 +23,13 @@ MultiByte WDK7 + + DynamicLibrary + false + true + MultiByte + WDK7 + @@ -26,6 +37,10 @@ + + + + false @@ -33,6 +48,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + xcdoat + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -53,6 +74,26 @@ doat.def + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;DOAT_EXPORTS;%(PreprocessorDefinitions) + ..;%(AdditionalIncludeDirectories) + true + + + Windows + true + true + true + doat.def + + diff --git a/plugins/exec/exec.vcxproj b/plugins/exec/exec.vcxproj index 15bf5ec5..22e6200a 100644 --- a/plugins/exec/exec.vcxproj +++ b/plugins/exec/exec.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {17E4BE39-76F7-4A06-AD21-EFD0C5091F76} @@ -19,6 +23,13 @@ MultiByte WDK7 + + DynamicLibrary + false + true + MultiByte + WDK7 + @@ -26,6 +37,10 @@ + + + + false @@ -33,6 +48,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + xcexec + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -53,6 +74,26 @@ exec.def + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;EXEC_EXPORTS;%(PreprocessorDefinitions) + true + ..;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + exec.def + + diff --git a/plugins/fishlim/fishlim.vcxproj b/plugins/fishlim/fishlim.vcxproj index 0f6e1c38..6b5dcc07 100644 --- a/plugins/fishlim/fishlim.vcxproj +++ b/plugins/fishlim/fishlim.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E} @@ -19,6 +23,13 @@ MultiByte WDK7 + + DynamicLibrary + false + true + MultiByte + WDK7 + @@ -26,6 +37,10 @@ + + + + false @@ -33,6 +48,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + xcfishlim + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -55,6 +76,28 @@ $(DepLibs);%(AdditionalDependencies) + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;FISHLIM_EXPORTS;%(PreprocessorDefinitions) + true + $(DepsRoot)\include;$(Glib);..;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + fishlim.def + $(DepsRoot)\lib;%(AdditionalLibraryDirectories) + $(DepLibs);%(AdditionalDependencies) + + diff --git a/plugins/lua/lua.vcxproj b/plugins/lua/lua.vcxproj index 26d21856..cbb3c444 100644 --- a/plugins/lua/lua.vcxproj +++ b/plugins/lua/lua.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {646B4316-C8B8-4DB6-B6AE-E586929E5729} @@ -19,6 +23,13 @@ MultiByte WDK7 + + DynamicLibrary + false + true + MultiByte + WDK7 + @@ -26,6 +37,10 @@ + + + + false @@ -33,6 +48,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + $(LuaOutput) + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -53,11 +74,36 @@ "$(LuaLib).lib";;dirent-win32.lib;%(AdditionalDependencies) + + + Level1 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;LUA_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions) + $(DepsRoot)\include;..;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + $(DepsRoot)\lib;$(OutDir);%(AdditionalLibraryDirectories) + "$(LuaLib).lib";;dirent-win32.lib;%(AdditionalDependencies) + + "$(LuaLib).lib";$(DepLibs);dirent-win32.lib;%(AdditionalDependencies) + + + "$(LuaLib).lib";$(DepLibs);dirent-win32.lib;%(AdditionalDependencies) + + WIN32;NDEBUG;_WINDOWS;_USRDLL;$(OwnFlags);snprintf=g_snprintf;%(PreprocessorDefinitions) @@ -67,6 +113,15 @@ lua.def + + + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;$(OwnFlags);snprintf=g_snprintf;%(PreprocessorDefinitions) + true + + + lua.def + + diff --git a/plugins/mpcinfo/mpcinfo.vcxproj b/plugins/mpcinfo/mpcinfo.vcxproj index 7f12822e..6746ce15 100644 --- a/plugins/mpcinfo/mpcinfo.vcxproj +++ b/plugins/mpcinfo/mpcinfo.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC} @@ -19,6 +23,13 @@ MultiByte WDK7 + + DynamicLibrary + false + true + MultiByte + WDK7 + @@ -26,6 +37,10 @@ + + + + false @@ -33,6 +48,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + xcmpcinfo + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -53,6 +74,26 @@ mpcinfo.def + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;MPCINFO_EXPORTS;%(PreprocessorDefinitions) + true + ..;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + mpcinfo.def + + diff --git a/plugins/perl/perl-512.vcxproj b/plugins/perl/perl-512.vcxproj index d924af48..313014b9 100644 --- a/plugins/perl/perl-512.vcxproj +++ b/plugins/perl/perl-512.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {987E9374-98A1-44BA-946F-D3472D7A7055} @@ -19,6 +23,13 @@ MultiByte WDK7 + + DynamicLibrary + false + true + MultiByte + WDK7 + @@ -26,6 +37,10 @@ + + + + false @@ -33,6 +48,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + $(Perl512Output) + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -61,6 +82,37 @@ move $(Perl512Lib).def "$(IntDir)" lib /nologo /machine:x86 "/def:$(IntDir)$(Perl512Lib).def" "/out:$(OutDir)\$(Perl512Lib).lib" "$(Perl512Path)\perl\bin\perl.exe" generate_header move irc.pm.h "$(IntDir)" +move xchat.pm.h "$(IntDir)" + + + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;PERL512_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions) + true + $(Perl512Path)\perl\lib\CORE;$(IntDir);..;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + $(OutDir);%(AdditionalLibraryDirectories) + $(Perl512Lib).lib;dirent-win32.lib;%(AdditionalDependencies) + perl.def + $(Perl512Lib).dll;%(DelayLoadDLLs) + + + "$(GendefPath)\gendef" "$(Perl512Path)\perl\bin\$(Perl512Lib).dll" +move $(Perl512Lib).def "$(IntDir)" +lib /nologo /machine:x64 "/def:$(IntDir)$(Perl512Lib).def" "/out:$(OutDir)\$(Perl512Lib).lib" +"$(Perl512Path)\perl\bin\perl.exe" generate_header +move irc.pm.h "$(IntDir)" move xchat.pm.h "$(IntDir)" diff --git a/plugins/perl/perl-514.vcxproj b/plugins/perl/perl-514.vcxproj index 58cc4f04..6e469944 100644 --- a/plugins/perl/perl-514.vcxproj +++ b/plugins/perl/perl-514.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0} @@ -19,6 +23,13 @@ MultiByte WDK7 + + DynamicLibrary + false + true + MultiByte + WDK7 + @@ -26,6 +37,10 @@ + + + + false @@ -33,6 +48,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + $(Perl514Output) + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -61,6 +82,37 @@ move $(Perl514Lib).def "$(IntDir)" lib /nologo /machine:x86 "/def:$(IntDir)$(Perl514Lib).def" "/out:$(OutDir)\$(Perl514Lib).lib" "$(Perl514Path)\perl\bin\perl.exe" generate_header move irc.pm.h "$(IntDir)" +move xchat.pm.h "$(IntDir)" + + + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;PERL514_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions) + $(Perl514Path)\perl\lib\CORE;$(IntDir);..;%(AdditionalIncludeDirectories) + true + + + Windows + true + true + true + $(OutDir);%(AdditionalLibraryDirectories) + $(Perl514Lib).lib;dirent-win32.lib;%(AdditionalDependencies) + perl.def + $(Perl514Lib).dll;%(DelayLoadDLLs) + + + "$(GendefPath)\gendef" "$(Perl514Path)\perl\bin\$(Perl514Lib).dll" +move $(Perl514Lib).def "$(IntDir)" +lib /nologo /machine:x64 "/def:$(IntDir)$(Perl514Lib).def" "/out:$(OutDir)\$(Perl514Lib).lib" +"$(Perl514Path)\perl\bin\perl.exe" generate_header +move irc.pm.h "$(IntDir)" move xchat.pm.h "$(IntDir)" diff --git a/plugins/perl/perl-516.vcxproj b/plugins/perl/perl-516.vcxproj index 516c1b80..06bf2fbd 100644 --- a/plugins/perl/perl-516.vcxproj +++ b/plugins/perl/perl-516.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {58654438-F674-42F7-88FA-73EF90AD80B1} @@ -19,6 +23,13 @@ MultiByte WDK7 + + DynamicLibrary + false + true + MultiByte + WDK7 + @@ -26,6 +37,10 @@ + + + + false @@ -33,6 +48,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + $(Perl516Output) + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -61,6 +82,37 @@ move $(Perl516Lib).def "$(IntDir)" lib /nologo /machine:x86 "/def:$(IntDir)$(Perl516Lib).def" "/out:$(OutDir)\$(Perl516Lib).lib" "$(Perl516Path)\perl\bin\perl.exe" generate_header move irc.pm.h "$(IntDir)" +move xchat.pm.h "$(IntDir)" + + + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;PERL516_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions) + $(Perl516Path)\perl\lib\CORE;$(IntDir);..;%(AdditionalIncludeDirectories) + true + + + Windows + true + true + true + $(OutDir);%(AdditionalLibraryDirectories) + $(Perl516Lib).lib;dirent-win32.lib;%(AdditionalDependencies) + perl.def + $(Perl516Lib).dll;%(DelayLoadDLLs) + + + "$(GendefPath)\gendef" "$(Perl516Path)\perl\bin\$(Perl516Lib).dll" +move $(Perl516Lib).def "$(IntDir)" +lib /nologo /machine:x64 "/def:$(IntDir)$(Perl516Lib).def" "/out:$(OutDir)\$(Perl516Lib).lib" +"$(Perl516Path)\perl\bin\perl.exe" generate_header +move irc.pm.h "$(IntDir)" move xchat.pm.h "$(IntDir)" diff --git a/plugins/python/python.vcxproj b/plugins/python/python.vcxproj index 923eeb92..ef50ee42 100644 --- a/plugins/python/python.vcxproj +++ b/plugins/python/python.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {19C52A0A-A790-409E-A28A-9745FF990F5C} @@ -19,6 +23,13 @@ MultiByte WDK7 + + DynamicLibrary + false + true + MultiByte + WDK7 + @@ -26,6 +37,10 @@ + + + + false @@ -33,6 +48,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + $(PythonOutput) + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -55,6 +76,28 @@ $(DepsRoot)\lib;$(OutDir);$(PythonPath)\libs;%(AdditionalLibraryDirectories) + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;PYTHON_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions) + $(Glib);$(PythonPath)\include;..;%(AdditionalIncludeDirectories) + true + + + Windows + true + true + true + python.def + "$(PythonLib).lib";$(DepLibs);dirent-win32.lib;%(AdditionalDependencies) + $(DepsRoot)\lib;$(OutDir);$(PythonPath)\libs;%(AdditionalLibraryDirectories) + + diff --git a/plugins/tcl/tcl.vcxproj b/plugins/tcl/tcl.vcxproj index baa188f6..8820742d 100644 --- a/plugins/tcl/tcl.vcxproj +++ b/plugins/tcl/tcl.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + @@ -29,6 +33,13 @@ MultiByte WDK7 + + DynamicLibrary + false + true + MultiByte + WDK7 + @@ -36,6 +47,10 @@ + + + + false @@ -43,6 +58,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + $(TclOutput) + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -65,6 +86,28 @@ $(TclLib).dll;%(DelayLoadDLLs) + + + Level1 + NotUsing + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;TCL_EXPORTS;TCL_DLL="$(TclLib).dll";$(OwnFlags);%(PreprocessorDefinitions) + $(TclPath)\include;..;%(AdditionalIncludeDirectories) + true + + + Windows + true + true + true + $(TclPath)\lib;%(AdditionalLibraryDirectories) + "$(TclLib).lib";%(AdditionalDependencies) + tcl.def + $(TclLib).dll;%(DelayLoadDLLs) + + diff --git a/plugins/upd/upd.vcxproj b/plugins/upd/upd.vcxproj index 9cf7c017..dc853ff8 100644 --- a/plugins/upd/upd.vcxproj +++ b/plugins/upd/upd.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {461DC24A-A410-4171-8C02-CCDBF3702C2A} @@ -19,6 +23,13 @@ MultiByte WDK7 + + DynamicLibrary + false + true + MultiByte + WDK7 + @@ -26,6 +37,10 @@ + + + + false @@ -33,6 +48,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + xcupd + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -55,6 +76,28 @@ $(DepsRoot)\lib;%(AdditionalLibraryDirectories) + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;UPD_EXPORTS;%(PreprocessorDefinitions) + true + ..;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + upd.def + $(DepLibs);%(AdditionalDependencies) + $(DepsRoot)\lib;%(AdditionalLibraryDirectories) + + diff --git a/plugins/winamp/winamp.vcxproj b/plugins/winamp/winamp.vcxproj index 0a1eb419..2b5f3633 100644 --- a/plugins/winamp/winamp.vcxproj +++ b/plugins/winamp/winamp.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE} @@ -19,6 +23,13 @@ MultiByte WDK7 + + DynamicLibrary + false + true + MultiByte + WDK7 + @@ -26,6 +37,10 @@ + + + + false @@ -33,6 +48,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + xcwinamp + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -53,6 +74,26 @@ winamp.def + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;WINAMP_EXPORTS;%(PreprocessorDefinitions) + true + ..;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + winamp.def + + diff --git a/plugins/winsys/winsys.vcxproj b/plugins/winsys/winsys.vcxproj index 656f6ee9..bacb5db4 100644 --- a/plugins/winsys/winsys.vcxproj +++ b/plugins/winsys/winsys.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {6C0CA980-97C5-427A-BE61-5BCECAFABBDA} @@ -19,6 +23,13 @@ Unicode WDK7 + + DynamicLibrary + false + true + Unicode + WDK7 + @@ -26,6 +37,10 @@ + + + + false @@ -33,6 +48,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + xcwinsys + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -56,6 +77,29 @@ comsupp.lib + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;WINSYS_EXPORTS;%(PreprocessorDefinitions) + ..;%(AdditionalIncludeDirectories) + true + false + + + Windows + true + true + true + winsys.def + wbemuuid.lib;vccomsup.lib;%(AdditionalDependencies) + comsupp.lib + + diff --git a/plugins/wmpa/wmpa.vcxproj b/plugins/wmpa/wmpa.vcxproj index 630cef4d..92364dc4 100644 --- a/plugins/wmpa/wmpa.vcxproj +++ b/plugins/wmpa/wmpa.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {E7F4DB0A-510D-41EF-B284-6E1DE1CC450D} @@ -20,6 +24,14 @@ WDK7 Dynamic + + DynamicLibrary + false + false + MultiByte + WDK7 + Dynamic + @@ -27,6 +39,10 @@ + + + + false @@ -34,6 +50,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + xcwmpa + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -55,6 +77,27 @@ true + + + Level1 + Create + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;WMPA_EXPORTS;_AFXDLL;_AFX_NO_DAO_SUPPORT;%(PreprocessorDefinitions) + false + + + Windows + true + true + true + wmpa.def + + + true + + diff --git a/plugins/xsasl/xsasl.vcxproj b/plugins/xsasl/xsasl.vcxproj index 7e0c41d7..bec3da94 100644 --- a/plugins/xsasl/xsasl.vcxproj +++ b/plugins/xsasl/xsasl.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {18871EBA-AC85-4652-8919-EB8064B9A714} @@ -19,6 +23,13 @@ MultiByte WDK7 + + DynamicLibrary + false + true + MultiByte + WDK7 + @@ -26,6 +37,10 @@ + + + + false @@ -33,6 +48,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + xcxsasl + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -55,6 +76,28 @@ $(DepLibs);%(AdditionalDependencies) + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;XSASL_EXPORTS;%(PreprocessorDefinitions) + $(Glib);..;%(AdditionalIncludeDirectories) + true + + + Windows + true + true + true + xsasl.def + $(DepsRoot)\lib;%(AdditionalLibraryDirectories) + $(DepLibs);%(AdditionalDependencies) + + diff --git a/plugins/xtray/xtray.vcxproj b/plugins/xtray/xtray.vcxproj index 1f7aa5cf..aa455a8f 100644 --- a/plugins/xtray/xtray.vcxproj +++ b/plugins/xtray/xtray.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {3024CF36-85E5-4E00-9608-7002E2C7EF14} @@ -19,6 +23,13 @@ Unicode WDK7 + + DynamicLibrary + false + true + Unicode + WDK7 + @@ -26,12 +37,21 @@ + + + + false $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -53,6 +73,27 @@ ntstc_msvcrt.lib;%(AdditionalDependencies) + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;XTRAY_EXPORTS;_STL70_;_STATIC_CPPLIB;%(PreprocessorDefinitions) + true + ..;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + xtray.def + ntstc_msvcrt.lib;%(AdditionalDependencies) + + diff --git a/src/common/common.vcxproj b/src/common/common.vcxproj index b57b2ccf..4e95c929 100644 --- a/src/common/common.vcxproj +++ b/src/common/common.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + @@ -82,6 +86,13 @@ MultiByte WDK7 + + StaticLibrary + false + true + MultiByte + WDK7 + @@ -89,11 +100,19 @@ + + + + $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -113,6 +132,25 @@ true + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_LIB;$(OwnFlags);%(PreprocessorDefinitions) + $(DepsRoot)\include;$(Glib);%(AdditionalIncludeDirectories) + true + + + Windows + true + true + true + + diff --git a/src/dirent/dirent.vcxproj b/src/dirent/dirent.vcxproj index 8ac38f92..5ae75f57 100644 --- a/src/dirent/dirent.vcxproj +++ b/src/dirent/dirent.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + @@ -25,6 +29,13 @@ MultiByte WDK7 + + StaticLibrary + false + true + MultiByte + WDK7 + @@ -32,12 +43,21 @@ + + + + $(ProjectName)-win32 $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + $(ProjectName)-win32 + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -56,6 +76,24 @@ true + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + diff --git a/src/fe-gtk/fe-gtk.vcxproj b/src/fe-gtk/fe-gtk.vcxproj index fce8d3e6..cb102012 100644 --- a/src/fe-gtk/fe-gtk.vcxproj +++ b/src/fe-gtk/fe-gtk.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {E4BDB4C8-2335-415A-ACEE-BA88B19BFE82} @@ -19,6 +23,13 @@ MultiByte WDK7 + + Application + false + true + MultiByte + WDK7 + @@ -26,6 +37,10 @@ + + + + false @@ -33,6 +48,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + xchat + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -55,6 +76,28 @@ mainCRTStartup + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_WINDOWS;$(OwnFlags);%(PreprocessorDefinitions) + $(DepsRoot)\include;$(Glib);$(Gtk);%(AdditionalIncludeDirectories) + true + + + Windows + true + true + true + $(DepsRoot)\lib;$(OutDir);%(AdditionalLibraryDirectories) + $(DepLibs);common.lib;dirent-win32.lib;%(AdditionalDependencies) + mainCRTStartup + + diff --git a/src/fe-text/fe-text.vcxproj b/src/fe-text/fe-text.vcxproj index ac7068ec..e8ed04b0 100644 --- a/src/fe-text/fe-text.vcxproj +++ b/src/fe-text/fe-text.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {E93E1255-95D1-4B08-8FDF-B53CC6A21280} @@ -19,6 +23,13 @@ MultiByte WDK7 + + Application + false + true + MultiByte + WDK7 + @@ -26,6 +37,10 @@ + + + + false @@ -33,6 +48,12 @@ $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + xchat-text + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -54,6 +75,27 @@ $(DepsRoot)\lib;%(AdditionalLibraryDirectories) + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_CONSOLE;$(OwnFlags);%(PreprocessorDefinitions) + $(DepsRoot)\include;$(Glib);%(AdditionalIncludeDirectories) + true + + + Console + true + true + true + $(DepLibs);"$(OutDir)\common.lib";"$(OutDir)\dirent-win32.lib";%(AdditionalDependencies) + $(DepsRoot)\lib;%(AdditionalLibraryDirectories) + + diff --git a/src/pixmaps/pixmaps.vcxproj b/src/pixmaps/pixmaps.vcxproj index 3fda0fef..ec33a49b 100644 --- a/src/pixmaps/pixmaps.vcxproj +++ b/src/pixmaps/pixmaps.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {626DA61C-FA8B-474C-B2F5-72AD9DFEE642} @@ -19,6 +23,13 @@ MultiByte WDK7 + + Application + false + true + MultiByte + WDK7 + @@ -26,12 +37,21 @@ + + + + false $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level3 @@ -52,6 +72,26 @@ "$(DepsRoot)\bin\gdk-pixbuf-csource" --build-list $(Pixmaps) > "$(SolutionDir)\..\src\pixmaps\inline_pngs.h" + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + "$(DepsRoot)\bin\gdk-pixbuf-csource" --build-list $(Pixmaps) > "$(SolutionDir)\..\src\pixmaps\inline_pngs.h" + + diff --git a/src/version/version.vcxproj b/src/version/version.vcxproj index b07b8e2a..5a4fe5cc 100644 --- a/src/version/version.vcxproj +++ b/src/version/version.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {6CD3647E-4541-4849-9DD7-C8816665AE42} @@ -19,6 +23,13 @@ MultiByte WDK7 + + Application + false + true + MultiByte + WDK7 + @@ -26,12 +37,21 @@ + + + + false $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + false + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level1 @@ -53,6 +73,27 @@ "$(OutDir)\$(TargetName)$(TargetExt)" -r > "$(SolutionDir)\..\resource.h" + + + Level1 + + + MaxSpeed + true + true + WIN32;_WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + "$(OutDir)\$(TargetName)$(TargetExt)" -r > "$(SolutionDir)\..\resource.h" + + diff --git a/win32/copy/copy.vcxproj b/win32/copy/copy.vcxproj index 5b64ddc6..a68df4a0 100644 --- a/win32/copy/copy.vcxproj +++ b/win32/copy/copy.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {C9B735E4-75BC-45AC-A5E3-39A6D076F912} @@ -18,6 +22,13 @@ MultiByte WDK7 + + Application + false + true + MultiByte + WDK7 + @@ -25,11 +36,19 @@ + + + + $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level3 @@ -112,6 +131,88 @@ copy "$(ProgramFiles)\Codejock Software\ISSkin\ISSkinU.dll" "$(XChatDest)" copy "..\installer\watercolorlite-green.cjstyles" "$(XChatDest)" + + + Level3 + MaxSpeed + true + true + + + true + true + true + + + rmdir /q /s "$(XChatDest)" +mkdir "$(XChatDest)" +echo 2> portable-mode +move portable-mode "$(XChatDest)" +copy "$(OutDir)\xchat.exe" "$(XChatDest)" +copy "$(OutDir)\xchat-text.exe" "$(XChatDest)" +copy "$(DepsRoot)\bin\libatk-1.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libcairo-2.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libexpat-1.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libfontconfig-1.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libfreetype-6.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgdk_pixbuf-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgdk-win32-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgio-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libglib-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgmodule-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgobject-2.0-0.dll" "$(XChatDest) +copy "$(DepsRoot)\bin\libgthread-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgtk-win32-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libintl-8.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libpango-1.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libpangocairo-1.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libpangoft2-1.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libpangowin32-1.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libpng14-14.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libxml2.dll" "$(XChatDest)" +xcopy /q /s /i "$(DepsRoot)\lib\gtk-2.0\2.10.0\engines" "$(XChatDest)\lib\gtk-2.0\2.10.0\engines" +xcopy /q /s /i "$(DepsRoot)\lib\gtk-2.0\modules\libgail.dll" "$(XChatDest)\lib\gtk-2.0\modules\" +xcopy /q /s /i etc "$(XChatDest)\etc" +xcopy /q /s /i share "$(XChatDest)\share" +copy "..\..\COPYING" "$(XChatDest)" +copy "$(DepsRoot)\LICENSE.OPENSSL" "$(XChatDest)" +copy "$(DepsRoot)\LICENSE.ZLIB" "$(XChatDest)" +copy "$(DepsRoot)\share\gettext\intl\COPYING.LIB-2.0" "$(XChatDest)\LICENSE.GTK" +copy "$(DepsRoot)\share\gettext\intl\COPYING.LIB-2.1" "$(XChatDest)\LICENSE.CAIRO" +copy "$(DepsRoot)\LICENSE.LUA" "$(XChatDest)" +copy "$(DepsRoot)\LICENSE.ENCHANT" "$(XChatDest)" +copy "$(DepsRoot)\LICENSE.LIBXML" "$(XChatDest)" +copy "$(DepsRoot)\bin\libeay32.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\ssleay32.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\zlib1.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\cert.pem" "$(XChatDest)" +copy "$(DepsRoot)\bin\libenchant.dll" "$(XChatDest)" +xcopy /q /s /i "$(DepsRoot)\lib\enchant\libenchant_myspell.dll" "$(XChatDest)\lib\enchant\" +xcopy /q /s /i "$(OutDir)xcchecksum.dll" "$(XChatDest)\plugins\" +copy "$(OutDir)\xcdns.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcdoat.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcexec.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcfishlim.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xclua.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcmpcinfo.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcperl-512.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcperl-514.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcperl-516.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcpython.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xctcl.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcupd.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcxsasl.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xtray.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcwinamp.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcwinsys.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcwmpa.dll" "$(XChatDest)\plugins" +copy "$(DepsRoot)\bin\lua51.dll" "$(XChatDest)" +xcopy /q /s /i "$(OutDir)\locale" "$(XChatDest)\locale" +xcopy /q /s /i "$(DepsRoot)\share\locale" "$(XChatDest)\share\locale" +copy "$(ProgramFiles)\Codejock Software\ISSkin\ISSkinU.dll" "$(XChatDest)" +copy "..\installer\watercolorlite-blue.cjstyles" "$(XChatDest)" + + diff --git a/win32/installer/installer.vcxproj b/win32/installer/installer.vcxproj index 3cb84d56..0fcba484 100644 --- a/win32/installer/installer.vcxproj +++ b/win32/installer/installer.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {5A0F4962-E670-4DA2-9E45-52CC47F26E2F} @@ -18,6 +22,13 @@ MultiByte WDK7 + + Application + false + true + MultiByte + WDK7 + @@ -25,11 +36,19 @@ + + + + $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level3 @@ -55,6 +74,31 @@ type xchat-wdk-x86.skel.iss >> "$(OutDir)\xchat-wdk-x86.iss" "$(ProgramFiles)\Inno Setup 5\compil32" /cc "$(OutDir)\xchat-wdk-x86.iss" + + + Level3 + MaxSpeed + true + true + + + true + true + true + + + echo [Setup] > "$(OutDir)\xchat-wdk-x64.iss" +echo WizardImageFile="$(ProjectDir)\wizardimage.bmp" >> "$(OutDir)\xchat-wdk-x64.iss" +echo WizardSmallImageFile="$(ProjectDir)\wizardsmallimage.bmp" >> "$(OutDir)\xchat-wdk-x64.iss" +"$(OutDir)\version" -a >> "$(OutDir)\xchat-wdk-x64.iss" +"$(OutDir)\version" -v >> "$(OutDir)\xchat-wdk-x64.iss" +"$(OutDir)\version" -i >> "$(OutDir)\xchat-wdk-x64.iss" +"$(OutDir)\version" -o >> "$(OutDir)\xchat-wdk-x64.iss" +echo SetupIconFile="$(SolutionDir)\..\xchat.ico" >> "$(OutDir)\xchat-wdk-x64.iss" +type xchat-wdk-x64.skel.iss >> "$(OutDir)\xchat-wdk-x64.iss" +"$(ProgramFiles)\Inno Setup 5\compil32" /cc "$(OutDir)\xchat-wdk-x64.iss" + + diff --git a/win32/nls/nls.vcxproj b/win32/nls/nls.vcxproj index 10e53bd8..9c0ecff4 100644 --- a/win32/nls/nls.vcxproj +++ b/win32/nls/nls.vcxproj @@ -5,6 +5,10 @@ Release Win32 + + Release + x64 + {B10A2C41-344C-43E0-A32D-B9587C198D8B} @@ -18,6 +22,13 @@ MultiByte WDK7 + + Application + false + true + MultiByte + WDK7 + @@ -25,11 +36,19 @@ + + + + $(SolutionDir)build\$(PlatformName)\bin $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + + $(SolutionDir)build\$(PlatformName)\bin + $(SolutionDir)build\$(PlatformName)\obj\$(ProjectName) + Level3 @@ -53,6 +72,32 @@ mkdir "$(OutDir)\locale" for %%A in (*.po) do ( mkdir "$(OutDir)\locale\%%~nA\LC_MESSAGES" "$(DepsRoot)\bin\msgfmt" -co "$(OutDir)\locale\%%~nA\LC_MESSAGES\xchat.mo" %%A +) + + + + + Level3 + MaxSpeed + true + true + + + true + true + true + + + + + + + cd ..\..\po +rmdir /q /s "$(OutDir)\locale" +mkdir "$(OutDir)\locale" +for %%A in (*.po) do ( +mkdir "$(OutDir)\locale\%%~nA\LC_MESSAGES" +"$(DepsRoot)\bin\msgfmt" -co "$(OutDir)\locale\%%~nA\LC_MESSAGES\xchat.mo" %%A ) diff --git a/win32/xchat.sln b/win32/xchat.sln index 84e1190e..ef7a3000 100644 --- a/win32/xchat.sln +++ b/win32/xchat.sln @@ -121,62 +121,117 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Release|Win32 = Release|Win32 + Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {87554B59-006C-4D94-9714-897B27067BA3}.Release|Win32.ActiveCfg = Release|Win32 {87554B59-006C-4D94-9714-897B27067BA3}.Release|Win32.Build.0 = Release|Win32 + {87554B59-006C-4D94-9714-897B27067BA3}.Release|x64.ActiveCfg = Release|x64 + {87554B59-006C-4D94-9714-897B27067BA3}.Release|x64.Build.0 = Release|x64 {98B56DF9-E4F1-4696-A565-5F7823CF214D}.Release|Win32.ActiveCfg = Release|Win32 {98B56DF9-E4F1-4696-A565-5F7823CF214D}.Release|Win32.Build.0 = Release|Win32 + {98B56DF9-E4F1-4696-A565-5F7823CF214D}.Release|x64.ActiveCfg = Release|x64 + {98B56DF9-E4F1-4696-A565-5F7823CF214D}.Release|x64.Build.0 = Release|x64 {626DA61C-FA8B-474C-B2F5-72AD9DFEE642}.Release|Win32.ActiveCfg = Release|Win32 {626DA61C-FA8B-474C-B2F5-72AD9DFEE642}.Release|Win32.Build.0 = Release|Win32 + {626DA61C-FA8B-474C-B2F5-72AD9DFEE642}.Release|x64.ActiveCfg = Release|x64 + {626DA61C-FA8B-474C-B2F5-72AD9DFEE642}.Release|x64.Build.0 = Release|x64 {6CD3647E-4541-4849-9DD7-C8816665AE42}.Release|Win32.ActiveCfg = Release|Win32 {6CD3647E-4541-4849-9DD7-C8816665AE42}.Release|Win32.Build.0 = Release|Win32 + {6CD3647E-4541-4849-9DD7-C8816665AE42}.Release|x64.ActiveCfg = Release|x64 + {6CD3647E-4541-4849-9DD7-C8816665AE42}.Release|x64.Build.0 = Release|x64 {E4BDB4C8-2335-415A-ACEE-BA88B19BFE82}.Release|Win32.ActiveCfg = Release|Win32 {E4BDB4C8-2335-415A-ACEE-BA88B19BFE82}.Release|Win32.Build.0 = Release|Win32 + {E4BDB4C8-2335-415A-ACEE-BA88B19BFE82}.Release|x64.ActiveCfg = Release|x64 + {E4BDB4C8-2335-415A-ACEE-BA88B19BFE82}.Release|x64.Build.0 = Release|x64 {E93E1255-95D1-4B08-8FDF-B53CC6A21280}.Release|Win32.ActiveCfg = Release|Win32 {E93E1255-95D1-4B08-8FDF-B53CC6A21280}.Release|Win32.Build.0 = Release|Win32 + {E93E1255-95D1-4B08-8FDF-B53CC6A21280}.Release|x64.ActiveCfg = Release|x64 + {E93E1255-95D1-4B08-8FDF-B53CC6A21280}.Release|x64.Build.0 = Release|x64 {2773666A-8CFC-4533-A043-EAD59F16A1C7}.Release|Win32.ActiveCfg = Release|Win32 {2773666A-8CFC-4533-A043-EAD59F16A1C7}.Release|Win32.Build.0 = Release|Win32 + {2773666A-8CFC-4533-A043-EAD59F16A1C7}.Release|x64.ActiveCfg = Release|x64 + {2773666A-8CFC-4533-A043-EAD59F16A1C7}.Release|x64.Build.0 = Release|x64 {987E9374-98A1-44BA-946F-D3472D7A7055}.Release|Win32.ActiveCfg = Release|Win32 {987E9374-98A1-44BA-946F-D3472D7A7055}.Release|Win32.Build.0 = Release|Win32 + {987E9374-98A1-44BA-946F-D3472D7A7055}.Release|x64.ActiveCfg = Release|x64 + {987E9374-98A1-44BA-946F-D3472D7A7055}.Release|x64.Build.0 = Release|x64 {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0}.Release|Win32.ActiveCfg = Release|Win32 {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0}.Release|Win32.Build.0 = Release|Win32 + {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0}.Release|x64.ActiveCfg = Release|x64 + {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0}.Release|x64.Build.0 = Release|x64 {58654438-F674-42F7-88FA-73EF90AD80B1}.Release|Win32.ActiveCfg = Release|Win32 {58654438-F674-42F7-88FA-73EF90AD80B1}.Release|Win32.Build.0 = Release|Win32 + {58654438-F674-42F7-88FA-73EF90AD80B1}.Release|x64.ActiveCfg = Release|x64 + {58654438-F674-42F7-88FA-73EF90AD80B1}.Release|x64.Build.0 = Release|x64 {19C52A0A-A790-409E-A28A-9745FF990F5C}.Release|Win32.ActiveCfg = Release|Win32 {19C52A0A-A790-409E-A28A-9745FF990F5C}.Release|Win32.Build.0 = Release|Win32 + {19C52A0A-A790-409E-A28A-9745FF990F5C}.Release|x64.ActiveCfg = Release|x64 + {19C52A0A-A790-409E-A28A-9745FF990F5C}.Release|x64.Build.0 = Release|x64 {646B4316-C8B8-4DB6-B6AE-E586929E5729}.Release|Win32.ActiveCfg = Release|Win32 {646B4316-C8B8-4DB6-B6AE-E586929E5729}.Release|Win32.Build.0 = Release|Win32 + {646B4316-C8B8-4DB6-B6AE-E586929E5729}.Release|x64.ActiveCfg = Release|x64 + {646B4316-C8B8-4DB6-B6AE-E586929E5729}.Release|x64.Build.0 = Release|x64 {4980AF24-9D42-427D-A8E6-0DF3B97C455D}.Release|Win32.ActiveCfg = Release|Win32 {4980AF24-9D42-427D-A8E6-0DF3B97C455D}.Release|Win32.Build.0 = Release|Win32 + {4980AF24-9D42-427D-A8E6-0DF3B97C455D}.Release|x64.ActiveCfg = Release|x64 + {4980AF24-9D42-427D-A8E6-0DF3B97C455D}.Release|x64.Build.0 = Release|x64 {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91}.Release|Win32.ActiveCfg = Release|Win32 {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91}.Release|Win32.Build.0 = Release|Win32 + {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91}.Release|x64.ActiveCfg = Release|x64 + {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91}.Release|x64.Build.0 = Release|x64 {3786FA8C-3E76-45E3-984E-FCCFF44729C9}.Release|Win32.ActiveCfg = Release|Win32 {3786FA8C-3E76-45E3-984E-FCCFF44729C9}.Release|Win32.Build.0 = Release|Win32 + {3786FA8C-3E76-45E3-984E-FCCFF44729C9}.Release|x64.ActiveCfg = Release|x64 + {3786FA8C-3E76-45E3-984E-FCCFF44729C9}.Release|x64.Build.0 = Release|x64 {17E4BE39-76F7-4A06-AD21-EFD0C5091F76}.Release|Win32.ActiveCfg = Release|Win32 {17E4BE39-76F7-4A06-AD21-EFD0C5091F76}.Release|Win32.Build.0 = Release|Win32 + {17E4BE39-76F7-4A06-AD21-EFD0C5091F76}.Release|x64.ActiveCfg = Release|x64 + {17E4BE39-76F7-4A06-AD21-EFD0C5091F76}.Release|x64.Build.0 = Release|x64 {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E}.Release|Win32.ActiveCfg = Release|Win32 {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E}.Release|Win32.Build.0 = Release|Win32 + {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E}.Release|x64.ActiveCfg = Release|x64 + {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E}.Release|x64.Build.0 = Release|x64 {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC}.Release|Win32.ActiveCfg = Release|Win32 {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC}.Release|Win32.Build.0 = Release|Win32 + {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC}.Release|x64.ActiveCfg = Release|x64 + {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC}.Release|x64.Build.0 = Release|x64 {461DC24A-A410-4171-8C02-CCDBF3702C2A}.Release|Win32.ActiveCfg = Release|Win32 {461DC24A-A410-4171-8C02-CCDBF3702C2A}.Release|Win32.Build.0 = Release|Win32 + {461DC24A-A410-4171-8C02-CCDBF3702C2A}.Release|x64.ActiveCfg = Release|x64 + {461DC24A-A410-4171-8C02-CCDBF3702C2A}.Release|x64.Build.0 = Release|x64 {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE}.Release|Win32.ActiveCfg = Release|Win32 {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE}.Release|Win32.Build.0 = Release|Win32 + {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE}.Release|x64.ActiveCfg = Release|x64 + {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE}.Release|x64.Build.0 = Release|x64 {6C0CA980-97C5-427A-BE61-5BCECAFABBDA}.Release|Win32.ActiveCfg = Release|Win32 {6C0CA980-97C5-427A-BE61-5BCECAFABBDA}.Release|Win32.Build.0 = Release|Win32 + {6C0CA980-97C5-427A-BE61-5BCECAFABBDA}.Release|x64.ActiveCfg = Release|x64 + {6C0CA980-97C5-427A-BE61-5BCECAFABBDA}.Release|x64.Build.0 = Release|x64 {18871EBA-AC85-4652-8919-EB8064B9A714}.Release|Win32.ActiveCfg = Release|Win32 {18871EBA-AC85-4652-8919-EB8064B9A714}.Release|Win32.Build.0 = Release|Win32 + {18871EBA-AC85-4652-8919-EB8064B9A714}.Release|x64.ActiveCfg = Release|x64 + {18871EBA-AC85-4652-8919-EB8064B9A714}.Release|x64.Build.0 = Release|x64 {3024CF36-85E5-4E00-9608-7002E2C7EF14}.Release|Win32.ActiveCfg = Release|Win32 {3024CF36-85E5-4E00-9608-7002E2C7EF14}.Release|Win32.Build.0 = Release|Win32 + {3024CF36-85E5-4E00-9608-7002E2C7EF14}.Release|x64.ActiveCfg = Release|x64 + {3024CF36-85E5-4E00-9608-7002E2C7EF14}.Release|x64.Build.0 = Release|x64 {E7F4DB0A-510D-41EF-B284-6E1DE1CC450D}.Release|Win32.ActiveCfg = Release|Win32 {E7F4DB0A-510D-41EF-B284-6E1DE1CC450D}.Release|Win32.Build.0 = Release|Win32 + {E7F4DB0A-510D-41EF-B284-6E1DE1CC450D}.Release|x64.ActiveCfg = Release|x64 + {E7F4DB0A-510D-41EF-B284-6E1DE1CC450D}.Release|x64.Build.0 = Release|x64 {B10A2C41-344C-43E0-A32D-B9587C198D8B}.Release|Win32.ActiveCfg = Release|Win32 {B10A2C41-344C-43E0-A32D-B9587C198D8B}.Release|Win32.Build.0 = Release|Win32 + {B10A2C41-344C-43E0-A32D-B9587C198D8B}.Release|x64.ActiveCfg = Release|x64 + {B10A2C41-344C-43E0-A32D-B9587C198D8B}.Release|x64.Build.0 = Release|x64 {C9B735E4-75BC-45AC-A5E3-39A6D076F912}.Release|Win32.ActiveCfg = Release|Win32 {C9B735E4-75BC-45AC-A5E3-39A6D076F912}.Release|Win32.Build.0 = Release|Win32 + {C9B735E4-75BC-45AC-A5E3-39A6D076F912}.Release|x64.ActiveCfg = Release|x64 + {C9B735E4-75BC-45AC-A5E3-39A6D076F912}.Release|x64.Build.0 = Release|x64 {5A0F4962-E670-4DA2-9E45-52CC47F26E2F}.Release|Win32.ActiveCfg = Release|Win32 {5A0F4962-E670-4DA2-9E45-52CC47F26E2F}.Release|Win32.Build.0 = Release|Win32 + {5A0F4962-E670-4DA2-9E45-52CC47F26E2F}.Release|x64.ActiveCfg = Release|x64 + {5A0F4962-E670-4DA2-9E45-52CC47F26E2F}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE -- cgit 1.4.1 From c1ed097b46d2679929edc5d35f848c30a6286992 Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Fri, 15 Jun 2012 22:48:18 +0200 Subject: Add .user files and .gitignore --- .gitignore | 5 +++++ plugins/checksum/checksum.vcxproj.user | 3 +++ plugins/dns/dns.vcxproj.user | 3 +++ plugins/doat/doat.vcxproj.user | 3 +++ plugins/exec/exec.vcxproj.user | 3 +++ plugins/fishlim/fishlim.vcxproj.user | 3 +++ plugins/lua/lua.vcxproj.user | 3 +++ plugins/mpcinfo/mpcinfo.vcxproj.user | 3 +++ plugins/perl/perl-512.vcxproj.user | 3 +++ plugins/perl/perl-514.vcxproj.user | 3 +++ plugins/perl/perl-516.vcxproj.user | 3 +++ plugins/python/python.vcxproj.user | 3 +++ plugins/tcl/tcl.vcxproj.user | 3 +++ plugins/upd/upd.vcxproj.user | 3 +++ plugins/winamp/winamp.vcxproj.user | 3 +++ plugins/winsys/winsys.vcxproj.user | 3 +++ plugins/wmpa/wmpa.vcxproj.user | 3 +++ plugins/xsasl/xsasl.vcxproj.user | 3 +++ plugins/xtray/xtray.vcxproj.user | 3 +++ src/common/common.vcxproj.user | 3 +++ src/dirent/dirent.vcxproj.user | 3 +++ src/fe-gtk/fe-gtk.vcxproj.user | 3 +++ src/fe-text/fe-text.vcxproj.user | 3 +++ src/pixmaps/pixmaps.vcxproj.user | 3 +++ src/version/version.vcxproj.user | 3 +++ win32/copy/copy.vcxproj.user | 3 +++ win32/installer/installer.vcxproj.user | 3 +++ win32/nls/nls.vcxproj.user | 3 +++ 28 files changed, 86 insertions(+) create mode 100644 .gitignore create mode 100644 plugins/checksum/checksum.vcxproj.user create mode 100644 plugins/dns/dns.vcxproj.user create mode 100644 plugins/doat/doat.vcxproj.user create mode 100644 plugins/exec/exec.vcxproj.user create mode 100644 plugins/fishlim/fishlim.vcxproj.user create mode 100644 plugins/lua/lua.vcxproj.user create mode 100644 plugins/mpcinfo/mpcinfo.vcxproj.user create mode 100644 plugins/perl/perl-512.vcxproj.user create mode 100644 plugins/perl/perl-514.vcxproj.user create mode 100644 plugins/perl/perl-516.vcxproj.user create mode 100644 plugins/python/python.vcxproj.user create mode 100644 plugins/tcl/tcl.vcxproj.user create mode 100644 plugins/upd/upd.vcxproj.user create mode 100644 plugins/winamp/winamp.vcxproj.user create mode 100644 plugins/winsys/winsys.vcxproj.user create mode 100644 plugins/wmpa/wmpa.vcxproj.user create mode 100644 plugins/xsasl/xsasl.vcxproj.user create mode 100644 plugins/xtray/xtray.vcxproj.user create mode 100644 src/common/common.vcxproj.user create mode 100644 src/dirent/dirent.vcxproj.user create mode 100644 src/fe-gtk/fe-gtk.vcxproj.user create mode 100644 src/fe-text/fe-text.vcxproj.user create mode 100644 src/pixmaps/pixmaps.vcxproj.user create mode 100644 src/version/version.vcxproj.user create mode 100644 win32/copy/copy.vcxproj.user create mode 100644 win32/installer/installer.vcxproj.user create mode 100644 win32/nls/nls.vcxproj.user (limited to 'plugins/fishlim') diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..83f00b41 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +# git ignore file +win32/xchat.opensdf +win32/xchat.sdf +win32/xchat.suo +src/pixmaps/inline_pngs.h diff --git a/plugins/checksum/checksum.vcxproj.user b/plugins/checksum/checksum.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/checksum/checksum.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/plugins/dns/dns.vcxproj.user b/plugins/dns/dns.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/dns/dns.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/plugins/doat/doat.vcxproj.user b/plugins/doat/doat.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/doat/doat.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/plugins/exec/exec.vcxproj.user b/plugins/exec/exec.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/exec/exec.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/plugins/fishlim/fishlim.vcxproj.user b/plugins/fishlim/fishlim.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/fishlim/fishlim.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/plugins/lua/lua.vcxproj.user b/plugins/lua/lua.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/lua/lua.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/plugins/mpcinfo/mpcinfo.vcxproj.user b/plugins/mpcinfo/mpcinfo.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/mpcinfo/mpcinfo.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/plugins/perl/perl-512.vcxproj.user b/plugins/perl/perl-512.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/perl/perl-512.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/plugins/perl/perl-514.vcxproj.user b/plugins/perl/perl-514.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/perl/perl-514.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/plugins/perl/perl-516.vcxproj.user b/plugins/perl/perl-516.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/perl/perl-516.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/plugins/python/python.vcxproj.user b/plugins/python/python.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/python/python.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/plugins/tcl/tcl.vcxproj.user b/plugins/tcl/tcl.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/tcl/tcl.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/plugins/upd/upd.vcxproj.user b/plugins/upd/upd.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/upd/upd.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/plugins/winamp/winamp.vcxproj.user b/plugins/winamp/winamp.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/winamp/winamp.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/plugins/winsys/winsys.vcxproj.user b/plugins/winsys/winsys.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/winsys/winsys.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/plugins/wmpa/wmpa.vcxproj.user b/plugins/wmpa/wmpa.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/wmpa/wmpa.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/plugins/xsasl/xsasl.vcxproj.user b/plugins/xsasl/xsasl.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/xsasl/xsasl.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/plugins/xtray/xtray.vcxproj.user b/plugins/xtray/xtray.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/xtray/xtray.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/common/common.vcxproj.user b/src/common/common.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/src/common/common.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/dirent/dirent.vcxproj.user b/src/dirent/dirent.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/src/dirent/dirent.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/fe-gtk/fe-gtk.vcxproj.user b/src/fe-gtk/fe-gtk.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/src/fe-gtk/fe-gtk.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/fe-text/fe-text.vcxproj.user b/src/fe-text/fe-text.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/src/fe-text/fe-text.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/pixmaps/pixmaps.vcxproj.user b/src/pixmaps/pixmaps.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/src/pixmaps/pixmaps.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/version/version.vcxproj.user b/src/version/version.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/src/version/version.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/win32/copy/copy.vcxproj.user b/win32/copy/copy.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/win32/copy/copy.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/win32/installer/installer.vcxproj.user b/win32/installer/installer.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/win32/installer/installer.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/win32/nls/nls.vcxproj.user b/win32/nls/nls.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/win32/nls/nls.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file -- cgit 1.4.1