Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4fe7d06811 |
+14
-3
@@ -7,19 +7,31 @@ Makefile
|
|||||||
Makefile.in
|
Makefile.in
|
||||||
aclocal.m4
|
aclocal.m4
|
||||||
autom4te.cache/
|
autom4te.cache/
|
||||||
/build-aux/
|
compile
|
||||||
|
ar-lib
|
||||||
confdefs.h
|
confdefs.h
|
||||||
conftest
|
conftest
|
||||||
conftest.c
|
conftest.c
|
||||||
conftest.err
|
conftest.err
|
||||||
config.*
|
config.guess
|
||||||
|
config.h.in
|
||||||
|
config.h.in~
|
||||||
|
config.h
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
config.sub
|
||||||
config-win32.h
|
config-win32.h
|
||||||
configure
|
configure
|
||||||
configure.tmp
|
configure.tmp
|
||||||
|
depcomp
|
||||||
doxygen*.tmp
|
doxygen*.tmp
|
||||||
html/
|
html/
|
||||||
|
install-sh
|
||||||
|
intl/
|
||||||
libtool
|
libtool
|
||||||
|
ltmain.sh
|
||||||
m4/
|
m4/
|
||||||
|
missing
|
||||||
plugins/perl/irc.pm.h
|
plugins/perl/irc.pm.h
|
||||||
plugins/perl/xchat.pm.h
|
plugins/perl/xchat.pm.h
|
||||||
plugins/perl/hexchat.pm.h
|
plugins/perl/hexchat.pm.h
|
||||||
@@ -32,7 +44,6 @@ data/man/hexchat.1
|
|||||||
data/pkgconfig/hexchat-plugin.pc
|
data/pkgconfig/hexchat-plugin.pc
|
||||||
data/misc/hexchat.appdata.xml
|
data/misc/hexchat.appdata.xml
|
||||||
data/misc/hexchat.desktop
|
data/misc/hexchat.desktop
|
||||||
data/misc/hexchat.desktop.in
|
|
||||||
data/misc/htm.desktop
|
data/misc/htm.desktop
|
||||||
src/common/dbus/example
|
src/common/dbus/example
|
||||||
src/common/dbus/org.hexchat.service.service
|
src/common/dbus/org.hexchat.service.service
|
||||||
|
|||||||
+2
-4
@@ -1,5 +1,4 @@
|
|||||||
sudo: required
|
sudo: false
|
||||||
dist: trusty
|
|
||||||
language: c
|
language: c
|
||||||
cache: apt
|
cache: apt
|
||||||
compiler: clang
|
compiler: clang
|
||||||
@@ -17,14 +16,13 @@ addons:
|
|||||||
apt:
|
apt:
|
||||||
packages:
|
packages:
|
||||||
- automake
|
- automake
|
||||||
- autoconf-archive
|
- autoconf
|
||||||
- imagemagick
|
- imagemagick
|
||||||
- intltool
|
- intltool
|
||||||
- libcanberra-dev
|
- libcanberra-dev
|
||||||
- libdbus-glib-1-dev
|
- libdbus-glib-1-dev
|
||||||
- libglib2.0-dev
|
- libglib2.0-dev
|
||||||
- libgtk2.0-dev
|
- libgtk2.0-dev
|
||||||
- libluajit-5.1-dev
|
|
||||||
- libnotify-dev
|
- libnotify-dev
|
||||||
- libpci-dev
|
- libpci-dev
|
||||||
- libperl-dev
|
- libperl-dev
|
||||||
|
|||||||
+4
-9
@@ -9,15 +9,10 @@ test -z "$srcdir" && srcdir=.
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ "$1" = "--copy" ]; then
|
aclocal --install -I m4 || exit 1
|
||||||
shift
|
glib-gettextize --force --copy || exit 1
|
||||||
aclocal --force --install || exit 1
|
intltoolize --force --copy --automake || exit 1
|
||||||
intltoolize --force --copy --automake || exit 1
|
autoreconf --force --install -Wno-portability || exit 1
|
||||||
autoreconf --force --install --include=m4 -Wno-portability || exit 1
|
|
||||||
else
|
|
||||||
intltoolize --automake || exit 1
|
|
||||||
autoreconf --install --symlink --include=m4 -Wno-portability || exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$NOCONFIGURE" = "" ]; then
|
if [ "$NOCONFIGURE" = "" ]; then
|
||||||
$srcdir/configure "$@" || exit 1
|
$srcdir/configure "$@" || exit 1
|
||||||
|
|||||||
+6
-61
@@ -1,6 +1,6 @@
|
|||||||
dnl Process this file with autoconf to produce a configure script.
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
|
||||||
AC_INIT([HexChat],[2.12.1])
|
AC_INIT([HexChat],[2.11.0])
|
||||||
|
|
||||||
AC_PREREQ([2.64])
|
AC_PREREQ([2.64])
|
||||||
AC_COPYRIGHT([Copyright (C) 1998-2010 Peter Zelezny])
|
AC_COPYRIGHT([Copyright (C) 1998-2010 Peter Zelezny])
|
||||||
@@ -9,18 +9,13 @@ AC_CONFIG_HEADERS([config.h])
|
|||||||
AC_CONFIG_SRCDIR([configure.ac])
|
AC_CONFIG_SRCDIR([configure.ac])
|
||||||
|
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
AC_CONFIG_AUX_DIR([build-aux])
|
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([1.11.1 dist-xz no-dist-gzip subdir-objects no-define foreign])
|
AM_INIT_AUTOMAKE([1.11.1 dist-xz no-dist-gzip subdir-objects no-define foreign])
|
||||||
AM_SILENT_RULES([yes])
|
AM_SILENT_RULES([yes])
|
||||||
|
|
||||||
AC_DEFUN([HEX_CHECK_MACRO], [m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined. Is ]$2[ installed?])])])
|
|
||||||
|
|
||||||
HEX_CHECK_MACRO([AX_APPEND_COMPILE_FLAGS], [autoconf-archive])
|
|
||||||
HEX_CHECK_MACRO([PKG_PROG_PKG_CONFIG], [pkg-config])
|
|
||||||
|
|
||||||
AX_IS_RELEASE([minor-version])
|
AX_IS_RELEASE([minor-version])
|
||||||
AX_CHECK_ENABLE_DEBUG([yes])
|
AX_CHECK_ENABLE_DEBUG([yes])
|
||||||
|
AX_REQUIRE_DEFINED([PKG_PROG_PKG_CONFIG])
|
||||||
|
|
||||||
AC_USE_SYSTEM_EXTENSIONS
|
AC_USE_SYSTEM_EXTENSIONS
|
||||||
AM_MAINTAINER_MODE([enable])
|
AM_MAINTAINER_MODE([enable])
|
||||||
@@ -118,10 +113,6 @@ AC_ARG_ENABLE(perl,
|
|||||||
[AS_HELP_STRING([--disable-perl],[don\'t build the perl plugin])],
|
[AS_HELP_STRING([--disable-perl],[don\'t build the perl plugin])],
|
||||||
perl=$enableval, perl=yes)
|
perl=$enableval, perl=yes)
|
||||||
|
|
||||||
AC_ARG_ENABLE(lua,
|
|
||||||
[AS_HELP_STRING([--disable-lua],[don\'t build the lua plugin])],
|
|
||||||
lua=$enableval, lua=yes)
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(perl_old,
|
AC_ARG_ENABLE(perl_old,
|
||||||
[AS_HELP_STRING([--disable-perl_old],[no backwards compatibility for perl plugin])],
|
[AS_HELP_STRING([--disable-perl_old],[no backwards compatibility for perl plugin])],
|
||||||
perl_old=$enableval, perl_old=yes)
|
perl_old=$enableval, perl_old=yes)
|
||||||
@@ -190,11 +181,11 @@ dnl *********************************************************************
|
|||||||
dnl ** GLIB *************************************************************
|
dnl ** GLIB *************************************************************
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
|
|
||||||
AM_PATH_GLIB_2_0([2.34.0], [], [AC_MSG_ERROR([Glib not found!])], [gmodule gobject gio])
|
AM_PATH_GLIB_2_0([2.32.0], [], [AC_MSG_ERROR([Glib not found!])], [gmodule gobject gio])
|
||||||
COMMON_CFLAGS="$GLIB_CFLAGS -DG_DISABLE_SINGLE_INCLUDES"
|
COMMON_CFLAGS="$GLIB_CFLAGS -DG_DISABLE_SINGLE_INCLUDES"
|
||||||
COMMON_LIBS="$GLIB_LIBS"
|
COMMON_LIBS="$GLIB_LIBS"
|
||||||
AC_DEFINE([GLIB_VERSION_MIN_REQUIRED], [GLIB_VERSION_2_34], [Dont warn using older APIs])
|
AC_DEFINE([GLIB_VERSION_MIN_REQUIRED], [GLIB_VERSION_2_32], [Dont warn using older APIs])
|
||||||
AC_DEFINE([GLIB_VERSION_MAX_ALLOWED], [GLIB_VERSION_2_34], [Prevents using newer APIs])
|
AC_DEFINE([GLIB_VERSION_MAX_ALLOWED], [GLIB_VERSION_2_32], [Prevents using newer APIs])
|
||||||
|
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
dnl ** GTK **************************************************************
|
dnl ** GTK **************************************************************
|
||||||
@@ -222,40 +213,6 @@ AS_IF([test "x$_gdk_tgt" = xquartz], [
|
|||||||
])
|
])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
dnl *********************************************************************
|
|
||||||
dnl ** Lua **************************************************************
|
|
||||||
dnl *********************************************************************
|
|
||||||
|
|
||||||
AS_IF([test "$lua" = yes], [
|
|
||||||
AC_MSG_CHECKING(for plugin interface used by lua)
|
|
||||||
AS_IF([test "$plugin" = yes], [
|
|
||||||
AC_MSG_RESULT([yes])
|
|
||||||
|
|
||||||
m4_define_default([_LUA_LIST], [luajit lua lua5.3 lua53 lua5.2 lua52 lua5.1 lua51])
|
|
||||||
|
|
||||||
AC_ARG_VAR([LUA], [The Lua pkgconfig name, e.g. luajit or lua5.2])
|
|
||||||
AS_IF([test "x$LUA" = 'x'], [
|
|
||||||
for lua_var in _LUA_LIST; do
|
|
||||||
$PKG_CONFIG --exists $lua_var || continue
|
|
||||||
LUA=$lua_var
|
|
||||||
break
|
|
||||||
done
|
|
||||||
AS_IF([test "x$LUA" = 'x'], [
|
|
||||||
AC_MSG_ERROR([Failed to find lua])
|
|
||||||
])
|
|
||||||
])
|
|
||||||
|
|
||||||
PKG_CHECK_MODULES([LUA], $LUA, [
|
|
||||||
AC_SUBST([LUA_CFLAGS])
|
|
||||||
AC_SUBST([LUA_LIBS])
|
|
||||||
])
|
|
||||||
], [
|
|
||||||
AC_MSG_RESULT([plugins are disabled, use the --enable-plugin option for lua])
|
|
||||||
lua=no
|
|
||||||
])
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
dnl ** PERL *************************************************************
|
dnl ** PERL *************************************************************
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
@@ -602,7 +559,6 @@ AM_CONDITIONAL(USE_LIBCANBERRA, test "x$libcanberra" = "xyes")
|
|||||||
AM_CONDITIONAL(DO_TEXT, test "x$textfe" = "xyes")
|
AM_CONDITIONAL(DO_TEXT, test "x$textfe" = "xyes")
|
||||||
AM_CONDITIONAL(DO_GTK, test "x$gtkfe" = "xyes")
|
AM_CONDITIONAL(DO_GTK, test "x$gtkfe" = "xyes")
|
||||||
AM_CONDITIONAL(DO_PERL, test "x$perl" = "xyes")
|
AM_CONDITIONAL(DO_PERL, test "x$perl" = "xyes")
|
||||||
AM_CONDITIONAL(DO_LUA, test "x$lua" = "xyes")
|
|
||||||
AM_CONDITIONAL(DO_PYTHON, test "x$python" != "xno")
|
AM_CONDITIONAL(DO_PYTHON, test "x$python" != "xno")
|
||||||
AM_CONDITIONAL(DO_PLUGIN, test "x$plugin" = "xyes")
|
AM_CONDITIONAL(DO_PLUGIN, test "x$plugin" = "xyes")
|
||||||
AM_CONDITIONAL(DO_CHECKSUM, test "x$checksum" = "xyes")
|
AM_CONDITIONAL(DO_CHECKSUM, test "x$checksum" = "xyes")
|
||||||
@@ -620,12 +576,9 @@ dnl *********************************************************************
|
|||||||
dnl ** CFLAGS ***********************************************************
|
dnl ** CFLAGS ***********************************************************
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
|
|
||||||
AX_APPEND_COMPILE_FLAGS([\
|
CC_CHECK_FLAGS_APPEND([CFLAGS], [CFLAGS], [ \
|
||||||
-pipe \
|
-pipe \
|
||||||
-funsigned-char \
|
-funsigned-char \
|
||||||
-fstack-protector-strong \
|
|
||||||
-fPIE \
|
|
||||||
-fPIC \
|
|
||||||
-Wall \
|
-Wall \
|
||||||
-Wextra \
|
-Wextra \
|
||||||
-Wstrict-prototypes \
|
-Wstrict-prototypes \
|
||||||
@@ -643,12 +596,6 @@ AX_APPEND_COMPILE_FLAGS([\
|
|||||||
-Werror=pointer-arith \
|
-Werror=pointer-arith \
|
||||||
])
|
])
|
||||||
|
|
||||||
AX_APPEND_LINK_FLAGS([ \
|
|
||||||
-pie \
|
|
||||||
-Wl,-z,relro \
|
|
||||||
-Wl,-z,now \
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
dnl ** FUNCTIONS/LIBS/CFLAGS ********************************************
|
dnl ** FUNCTIONS/LIBS/CFLAGS ********************************************
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
@@ -755,7 +702,6 @@ src/htm/Makefile
|
|||||||
src/htm/thememan
|
src/htm/thememan
|
||||||
osx/Info.plist
|
osx/Info.plist
|
||||||
plugins/Makefile
|
plugins/Makefile
|
||||||
plugins/lua/Makefile
|
|
||||||
plugins/python/Makefile
|
plugins/python/Makefile
|
||||||
plugins/perl/Makefile
|
plugins/perl/Makefile
|
||||||
plugins/checksum/Makefile
|
plugins/checksum/Makefile
|
||||||
@@ -781,7 +727,6 @@ echo libcanberra support ... : $libcanberra
|
|||||||
echo Plugin interface ...... : $plugin
|
echo Plugin interface ...... : $plugin
|
||||||
echo libproxy support ...... : $libproxy
|
echo libproxy support ...... : $libproxy
|
||||||
echo
|
echo
|
||||||
echo Lua ................... : $lua \($LUA\)
|
|
||||||
echo Perl .................. : $perl
|
echo Perl .................. : $perl
|
||||||
echo Python ................ : $python
|
echo Python ................ : $python
|
||||||
echo
|
echo
|
||||||
|
|||||||
+2
-11
@@ -3,15 +3,6 @@ appdata_DATA = $(appdata_in_files:.xml.in=.xml)
|
|||||||
appdatadir = $(datadir)/appdata
|
appdatadir = $(datadir)/appdata
|
||||||
@INTLTOOL_XML_RULE@
|
@INTLTOOL_XML_RULE@
|
||||||
|
|
||||||
if USE_DBUS
|
|
||||||
exec_command = 'hexchat --existing %U'
|
|
||||||
else
|
|
||||||
exec_command = 'hexchat %U'
|
|
||||||
endif
|
|
||||||
|
|
||||||
hexchat.desktop.in: hexchat.desktop.in.in
|
|
||||||
$(AM_V_GEN)sed -e s!\@exec_command\@!$(exec_command)! < $< > $@
|
|
||||||
|
|
||||||
data_desktopdir = $(datadir)/applications
|
data_desktopdir = $(datadir)/applications
|
||||||
data_desktop_in_files = hexchat.desktop.in
|
data_desktop_in_files = hexchat.desktop.in
|
||||||
|
|
||||||
@@ -35,6 +26,6 @@ uninstall-hook:
|
|||||||
$(UPDATE_MIME_DATABASE);
|
$(UPDATE_MIME_DATABASE);
|
||||||
$(UPDATE_DESKTOP_DATABASE);
|
$(UPDATE_DESKTOP_DATABASE);
|
||||||
|
|
||||||
EXTRA_DIST = hexchat.appdata.xml.in hexchat.desktop.in.in htm.desktop.in htm-mime.xml
|
EXTRA_DIST = hexchat.appdata.xml.in hexchat.desktop.in htm.desktop.in htm-mime.xml
|
||||||
|
|
||||||
CLEANFILES = $(appdata_DATA) $(data_desktop_DATA) hexchat.desktop.in
|
CLEANFILES = $(appdata_DATA) $(data_desktop_DATA)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ _Name=HexChat
|
|||||||
_GenericName=IRC Client
|
_GenericName=IRC Client
|
||||||
_Comment=Chat with other people online
|
_Comment=Chat with other people online
|
||||||
_Keywords=IM;Chat;
|
_Keywords=IM;Chat;
|
||||||
Exec=@exec_command@
|
Exec=hexchat %U
|
||||||
Icon=hexchat
|
Icon=hexchat
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
dnl Macros to check the presence of generic (non-typed) symbols.
|
||||||
|
dnl Copyright (c) 2006-2008 Diego Pettenò <flameeyes@gmail.com>
|
||||||
|
dnl Copyright (c) 2006-2008 xine project
|
||||||
|
dnl Copyright (c) 2012 Lucas De Marchi <lucas.de.marchi@gmail.com>
|
||||||
|
dnl
|
||||||
|
dnl This program is free software; you can redistribute it and/or modify
|
||||||
|
dnl it under the terms of the GNU General Public License as published by
|
||||||
|
dnl the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
dnl any later version.
|
||||||
|
dnl
|
||||||
|
dnl This program is distributed in the hope that it will be useful,
|
||||||
|
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
dnl GNU General Public License for more details.
|
||||||
|
dnl
|
||||||
|
dnl You should have received a copy of the GNU General Public License
|
||||||
|
dnl along with this program; if not, write to the Free Software
|
||||||
|
dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
|
dnl 02110-1301, USA.
|
||||||
|
dnl
|
||||||
|
dnl As a special exception, the copyright owners of the
|
||||||
|
dnl macro gives unlimited permission to copy, distribute and modify the
|
||||||
|
dnl configure scripts that are the output of Autoconf when processing the
|
||||||
|
dnl Macro. You need not follow the terms of the GNU General Public
|
||||||
|
dnl License when using or distributing such scripts, even though portions
|
||||||
|
dnl of the text of the Macro appear in them. The GNU General Public
|
||||||
|
dnl License (GPL) does govern all other use of the material that
|
||||||
|
dnl constitutes the Autoconf Macro.
|
||||||
|
dnl
|
||||||
|
dnl This special exception to the GPL applies to versions of the
|
||||||
|
dnl Autoconf Macro released by this project. When you make and
|
||||||
|
dnl distribute a modified version of the Autoconf Macro, you may extend
|
||||||
|
dnl this special exception to the GPL to apply to your modified version as
|
||||||
|
dnl well.
|
||||||
|
|
||||||
|
dnl Check if FLAG in ENV-VAR is supported by compiler and append it
|
||||||
|
dnl to WHERE-TO-APPEND variable
|
||||||
|
dnl CC_CHECK_FLAG_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG])
|
||||||
|
|
||||||
|
AC_DEFUN([CC_CHECK_FLAG_APPEND], [
|
||||||
|
AC_CACHE_CHECK([if $CC supports flag $3 in envvar $2],
|
||||||
|
AS_TR_SH([cc_cv_$2_$3]),
|
||||||
|
[eval "AS_TR_SH([cc_save_$2])='${$2}'"
|
||||||
|
eval "AS_TR_SH([$2])='$3'"
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([int a = 0; int main(void) { return a; } ])],
|
||||||
|
[eval "AS_TR_SH([cc_cv_$2_$3])='yes'"],
|
||||||
|
[eval "AS_TR_SH([cc_cv_$2_$3])='no'"])
|
||||||
|
eval "AS_TR_SH([$2])='$cc_save_$2'"])
|
||||||
|
|
||||||
|
AS_IF([eval test x$]AS_TR_SH([cc_cv_$2_$3])[ = xyes],
|
||||||
|
[eval "$1='${$1} $3'"])
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl CC_CHECK_FLAGS_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG1 FLAG2])
|
||||||
|
AC_DEFUN([CC_CHECK_FLAGS_APPEND], [
|
||||||
|
for flag in $3; do
|
||||||
|
CC_CHECK_FLAG_APPEND($1, $2, $flag)
|
||||||
|
done
|
||||||
|
])
|
||||||
|
|
||||||
@@ -0,0 +1,116 @@
|
|||||||
|
# ===========================================================================
|
||||||
|
# http://www.gnu.org/software/autoconf-archive/ax_perl_ext_flags.html
|
||||||
|
# ===========================================================================
|
||||||
|
#
|
||||||
|
# SYNOPSIS
|
||||||
|
#
|
||||||
|
# AX_PERL_EXT_FLAGS([CFLAGS-VARIABLE], [LDFLAGS-VARIABLE], [EXTRA-MODULES])
|
||||||
|
# AX_PERL_EXT_CFLAGS([CFLAGS-VARIABLE])
|
||||||
|
# AX_PERL_EXT_LDFLAGS([LDFLAGS-VARIABLE], [EXTRA-MODULES])
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
# Fetches the linker flags and C compiler flags for compiling and linking
|
||||||
|
# programs that embed a Perl interpreter. If the EXTRA-MODULES argument is
|
||||||
|
# submitted, it is a space separated list of extra modules to link. The
|
||||||
|
# flags will be stored in the provided variables.
|
||||||
|
#
|
||||||
|
# Examples:
|
||||||
|
#
|
||||||
|
# AX_PERL_EXT_FLAGS([PERLXS_CFLAGS], [PERLXS_LDFLAGS])
|
||||||
|
# AC_SUBST([PERLXS_CFLAGS])
|
||||||
|
# AC_SUBST([PERLXS_LDFLAGS])
|
||||||
|
#
|
||||||
|
# AX_PERL_EXT_CFLAGS([PERLXS_CFLAGS])
|
||||||
|
# AC_SUBST([PERLXS_CFLAGS])
|
||||||
|
#
|
||||||
|
# AX_PERL_EXT_LDFLAGS([PERLXS_LDFLAGS], [-std Socket])
|
||||||
|
#
|
||||||
|
# LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) 2009 Mats Kindahl of Sun Microsystems <mats@sun.com>
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are
|
||||||
|
# met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
#
|
||||||
|
# 3. The name of the author may not be used to endorse or promote products
|
||||||
|
# derived from this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||||
|
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
|
||||||
|
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
#serial 5
|
||||||
|
|
||||||
|
AC_DEFUN([AX_PERL_EXT_CFLAGS],
|
||||||
|
[AC_CHECK_PROG(PERL,perl,perl)
|
||||||
|
_AX_PERL_EXT_MODULE_CHECK([ExtUtils::Embed], [have_embed=yes],
|
||||||
|
[have_embed=no])
|
||||||
|
AS_IF([test $have_embed = no],
|
||||||
|
AC_MSG_ERROR([Require ExtUtils::Embed to proceed]))
|
||||||
|
_AX_PERL_EXT_EMBED_CHECK([$1],[ccopts])
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
AC_DEFUN([AX_PERL_EXT_LDFLAGS],
|
||||||
|
[AC_CHECK_PROG(PERL,perl,perl)
|
||||||
|
_AX_PERL_EXT_MODULE_CHECK([ExtUtils::Embed], [have_embed=yes],
|
||||||
|
[have_embed=no])
|
||||||
|
AS_IF([test $have_embed = no],
|
||||||
|
AC_MSG_ERROR([Require ExtUtils::Embed to proceed]))
|
||||||
|
_AX_PERL_EXT_EMBED_CHECK([$1],[ldopts],[$2])
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
AC_DEFUN([AX_PERL_EXT_FLAGS],
|
||||||
|
[AC_CHECK_PROG(PERL,perl,perl)
|
||||||
|
_AX_PERL_EXT_MODULE_CHECK([ExtUtils::Embed], [have_embed=yes],
|
||||||
|
[have_embed=no])
|
||||||
|
AS_IF([test $have_embed = no],
|
||||||
|
AC_MSG_ERROR([Require ExtUtils::Embed to proceed]))
|
||||||
|
_AX_PERL_EXT_EMBED_CHECK([$1],[ccopts])
|
||||||
|
_AX_PERL_EXT_EMBED_CHECK([$2],[ldopts],[$3])
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
dnl _AX_PERL_EXT_MODULE_CHECK(MODULE-NAME, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
|
||||||
|
dnl
|
||||||
|
dnl Check for the existance of the perl module given by MODULE-NAME.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([_AX_PERL_EXT_MODULE_CHECK],
|
||||||
|
[AC_MSG_CHECKING([for perl module $1])
|
||||||
|
$PERL "-M$1" -e exit > /dev/null 2>&1
|
||||||
|
AS_IF([test $? -eq 0],
|
||||||
|
[AC_MSG_RESULT(yes)
|
||||||
|
$2],
|
||||||
|
[AC_MSG_RESULT(no)
|
||||||
|
$3])
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl _AX_PERL_EXT_EMBED_CHECK(VARIABLE, COMMAND, [EXTRA-FLAGS]) Use
|
||||||
|
dnl
|
||||||
|
dnl ExtUtils::Embed fetch flags for embedding Perl in a C/C++
|
||||||
|
dnl application
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([_AX_PERL_EXT_EMBED_CHECK],
|
||||||
|
[AC_MSG_CHECKING([for perl $2 embed flags])
|
||||||
|
ax_c_perlxs_extras="$3"
|
||||||
|
$1=`$PERL -MExtUtils::Embed -e $2 ${ax_c_perlxs_extras:+"-- $3"}`
|
||||||
|
AC_MSG_RESULT($$1)
|
||||||
|
])
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
# ===========================================================================
|
||||||
|
# http://www.gnu.org/software/autoconf-archive/ax_require_defined.html
|
||||||
|
# ===========================================================================
|
||||||
|
#
|
||||||
|
# SYNOPSIS
|
||||||
|
#
|
||||||
|
# AX_REQUIRE_DEFINED(MACRO)
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
# AX_REQUIRE_DEFINED is a simple helper for making sure other macros have
|
||||||
|
# been defined and thus are available for use. This avoids random issues
|
||||||
|
# where a macro isn't expanded. Instead the configure script emits a
|
||||||
|
# non-fatal:
|
||||||
|
#
|
||||||
|
# ./configure: line 1673: AX_CFLAGS_WARN_ALL: command not found
|
||||||
|
#
|
||||||
|
# It's like AC_REQUIRE except it doesn't expand the required macro.
|
||||||
|
#
|
||||||
|
# Here's an example:
|
||||||
|
#
|
||||||
|
# AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG])
|
||||||
|
#
|
||||||
|
# LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) 2014 Mike Frysinger <vapier@gentoo.org>
|
||||||
|
#
|
||||||
|
# Copying and distribution of this file, with or without modification, are
|
||||||
|
# permitted in any medium without royalty provided the copyright notice
|
||||||
|
# and this notice are preserved. This file is offered as-is, without any
|
||||||
|
# warranty.
|
||||||
|
|
||||||
|
#serial 1
|
||||||
|
|
||||||
|
AC_DEFUN([AX_REQUIRE_DEFINED], [dnl
|
||||||
|
m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined; is a m4 file missing?])])
|
||||||
|
])dnl AX_REQUIRE_DEFINED
|
||||||
+1
-5
@@ -1,7 +1,3 @@
|
|||||||
if DO_LUA
|
|
||||||
lua = lua
|
|
||||||
endif
|
|
||||||
|
|
||||||
if DO_PYTHON
|
if DO_PYTHON
|
||||||
pythondir = python
|
pythondir = python
|
||||||
endif
|
endif
|
||||||
@@ -26,4 +22,4 @@ if DO_SYSINFO
|
|||||||
sysinfodir = sysinfo
|
sysinfodir = sysinfo
|
||||||
endif
|
endif
|
||||||
|
|
||||||
SUBDIRS = $(lua) $(pythondir) $(perldir) $(checksumdir) $(doatdir) $(fishlimdir) $(sysinfodir)
|
SUBDIRS = $(pythondir) $(perldir) $(checksumdir) $(doatdir) $(fishlimdir) $(sysinfodir)
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
libdir = $(hexchatlibdir)
|
|
||||||
|
|
||||||
lib_LTLIBRARIES = lua.la
|
|
||||||
lua_la_SOURCES = lua.c
|
|
||||||
lua_la_LDFLAGS = $(PLUGIN_LDFLAGS) -module
|
|
||||||
lua_la_LIBADD = $(LUA_LIBS) $(GLIB_LIBS)
|
|
||||||
lua_la_CPPFLAGS = -I$(top_srcdir)/src/common
|
|
||||||
lua_la_CFLAGS = $(GLIB_CFLAGS) $(LUA_CFLAGS)
|
|
||||||
|
|
||||||
-1725
File diff suppressed because it is too large
Load Diff
@@ -1,54 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup Label="Configuration">
|
|
||||||
<PlatformToolset>v140</PlatformToolset>
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{4C0F3940-2EEE-4646-82F7-6CE75B9A72F4}</ProjectGuid>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<RootNamespace>lua</RootNamespace>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\..\win32\hexchat.props" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetName>$(LuaOutput)</TargetName>
|
|
||||||
<OutDir>$(HexChatRel)plugins\</OutDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>$(Glib);$(LuaInclude);..\..\src\common;$(HexChatLib);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>"$(LuaLib).lib";$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>$(Glib);$(LuaInclude);..\..\src\common;$(HexChatLib);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>"$(LuaLib).lib";$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="lua.c" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
</Project>
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Source Files">
|
|
||||||
<UniqueIdentifier>{f4eaf231-f095-42d3-8427-b2b6006cacb1}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Resource Files">
|
|
||||||
<UniqueIdentifier>{0166c0f9-7968-4a09-9ef5-a5179c7746eb}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="lua.c" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
@@ -40,37 +40,32 @@ int xs_parse_cpu(char *model, char *vendor, double *freq)
|
|||||||
#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__alpha__) || defined(__ia64__) || defined(__parisc__) || defined(__sparc__)
|
#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__alpha__) || defined(__ia64__) || defined(__parisc__) || defined(__sparc__)
|
||||||
char buffer[bsize];
|
char buffer[bsize];
|
||||||
#endif
|
#endif
|
||||||
FILE *fp;
|
#if defined(__powerpc__)
|
||||||
|
char *pos = NULL;
|
||||||
fp = fopen("/proc/cpuinfo", "r");
|
#endif
|
||||||
|
FILE *fp = fopen("/proc/cpuinfo", "r");
|
||||||
if(fp == NULL)
|
if(fp == NULL)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
#if defined(__i386__) || defined(__x86_64__)
|
#if defined(__i386__) || defined(__x86_64__)
|
||||||
|
|
||||||
while(fgets(buffer, bsize, fp) != NULL)
|
while(fgets(buffer, bsize, fp) != NULL)
|
||||||
{
|
{
|
||||||
find_match_char(buffer, "model name", model);
|
find_match_char(buffer, "model name", model);
|
||||||
find_match_char(buffer, "vendor_id", vendor);
|
find_match_char(buffer, "vendor_id", vendor);
|
||||||
find_match_double(buffer, "cpu MHz", freq);
|
find_match_double(buffer, "cpu MHz", freq);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#elif defined(__powerpc__)
|
#ifdef __powerpc__
|
||||||
|
while(fgets(buffer, bsize, fp) != NULL)
|
||||||
{
|
{
|
||||||
char *pos;
|
find_match_char(buffer, "cpu", model);
|
||||||
|
find_match_char(buffer, "machine", vendor);
|
||||||
while(fgets(buffer, bsize, fp) != NULL)
|
find_match_double(buffer, "clock", freq);
|
||||||
{
|
|
||||||
find_match_char(buffer, "cpu", model);
|
|
||||||
find_match_char(buffer, "machine", vendor);
|
|
||||||
find_match_double(buffer, "clock", freq);
|
|
||||||
}
|
|
||||||
pos = strstr(model, ",");
|
|
||||||
if (pos != NULL)
|
|
||||||
*pos = '\0';
|
|
||||||
}
|
}
|
||||||
#elif defined( __alpha__)
|
pos = strstr(model, ",");
|
||||||
|
if (pos != NULL) *pos = '\0';
|
||||||
|
#endif
|
||||||
|
#ifdef __alpha__
|
||||||
while(fgets(buffer, bsize, fp) != NULL)
|
while(fgets(buffer, bsize, fp) != NULL)
|
||||||
{
|
{
|
||||||
find_match_char(buffer, "cpu model", model);
|
find_match_char(buffer, "cpu model", model);
|
||||||
@@ -78,47 +73,37 @@ int xs_parse_cpu(char *model, char *vendor, double *freq)
|
|||||||
find_match_double(buffer, "cycle frequency [Hz]", freq);
|
find_match_double(buffer, "cycle frequency [Hz]", freq);
|
||||||
}
|
}
|
||||||
*freq = *freq / 1000000;
|
*freq = *freq / 1000000;
|
||||||
|
#endif
|
||||||
#elif defined(__ia64__)
|
#ifdef __ia64__
|
||||||
|
|
||||||
while(fgets(buffer, bsize, fp) != NULL)
|
while(fgets(buffer, bsize, fp) != NULL)
|
||||||
{
|
{
|
||||||
find_match_char(buffer, "model", model);
|
find_match_char(buffer, "model", model);
|
||||||
find_match_char(buffer, "vendor", vendor);
|
find_match_char(buffer, "vendor", vendor);
|
||||||
find_match_double(buffer, "cpu MHz", freq);
|
find_match_double(buffer, "cpu MHz", freq);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#elif defined(__parisc__)
|
#ifdef __parisc__
|
||||||
|
|
||||||
while(fgets(buffer, bsize, fp) != NULL)
|
while(fgets(buffer, bsize, fp) != NULL)
|
||||||
{
|
{
|
||||||
find_match_char(buffer, "cpu ", model);
|
find_match_char(buffer, "cpu ", model);
|
||||||
find_match_char(buffer, "cpu family", vendor);
|
find_match_char(buffer, "cpu family", vendor);
|
||||||
find_match_double(buffer, "cpu MHz", freq);
|
find_match_double(buffer, "cpu MHz", freq);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#elif defined(__sparc__)
|
#ifdef __sparc__
|
||||||
{
|
DIR *dir;
|
||||||
DIR *dir;
|
struct dirent *entry;
|
||||||
struct dirent *entry;
|
FILE *fp2;
|
||||||
FILE *fp2;
|
while(fgets(buffer, bsize, fp) != NULL)
|
||||||
|
{
|
||||||
while(fgets(buffer, bsize, fp) != NULL)
|
find_match_char(buffer, "cpu ", model);
|
||||||
{
|
find_match_char(buffer, "type ", vendor);
|
||||||
find_match_char(buffer, "cpu ", model);
|
find_match_double_hex(buffer, "Cpu0ClkTck", freq);
|
||||||
find_match_char(buffer, "type ", vendor);
|
}
|
||||||
find_match_double_hex(buffer, "Cpu0ClkTck", freq);
|
*freq = *freq / 1000000;
|
||||||
}
|
#endif
|
||||||
*freq = *freq / 1000000;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
|
|
||||||
fclose(fp);
|
|
||||||
return 1; /* Unsupported */
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
data/misc/hexchat.desktop.in.in
|
|
||||||
+19
-34
@@ -76,28 +76,14 @@ chanopt_value (guint8 val)
|
|||||||
switch (val)
|
switch (val)
|
||||||
{
|
{
|
||||||
case SET_OFF:
|
case SET_OFF:
|
||||||
return _("OFF");
|
return "OFF";
|
||||||
case SET_ON:
|
case SET_ON:
|
||||||
return _("ON");
|
return "ON";
|
||||||
case SET_DEFAULT:
|
|
||||||
return _("{unset}");
|
|
||||||
default:
|
default:
|
||||||
g_assert_not_reached ();
|
return "{unset}";
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static guint8
|
|
||||||
str_to_chanopt (const char *str)
|
|
||||||
{
|
|
||||||
if (!g_ascii_strcasecmp (str, "ON") || !strcmp (str, "1"))
|
|
||||||
return SET_ON;
|
|
||||||
else if (!g_ascii_strcasecmp (str, "OFF") || !strcmp (str, "0"))
|
|
||||||
return SET_OFF;
|
|
||||||
else
|
|
||||||
return SET_DEFAULT;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* handle the /CHANOPT command */
|
/* handle the /CHANOPT command */
|
||||||
|
|
||||||
int
|
int
|
||||||
@@ -120,14 +106,19 @@ chanopt_command (session *sess, char *tbuf, char *word[], char *word_eol[])
|
|||||||
|
|
||||||
if (word[offset][0])
|
if (word[offset][0])
|
||||||
{
|
{
|
||||||
newval = str_to_chanopt (word[offset]);
|
if (!g_ascii_strcasecmp (word[offset], "ON"))
|
||||||
|
newval = 1;
|
||||||
|
else if (!g_ascii_strcasecmp (word[offset], "OFF"))
|
||||||
|
newval = 0;
|
||||||
|
else if (word[offset][0] == 'u')
|
||||||
|
newval = SET_DEFAULT;
|
||||||
|
else
|
||||||
|
newval = atoi (word[offset]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!quiet)
|
if (!quiet)
|
||||||
PrintTextf (sess, "\002%s\002: %s \002%s\002: %s\n",
|
PrintTextf (sess, "\002Network\002: %s \002Channel\002: %s\n",
|
||||||
_("Network"),
|
|
||||||
sess->server->network ? server_get_network (sess->server, TRUE) : _("<none>"),
|
sess->server->network ? server_get_network (sess->server, TRUE) : _("<none>"),
|
||||||
_("Channel"),
|
|
||||||
sess->session_name[0] ? sess->session_name : _("<none>"));
|
sess->session_name[0] ? sess->session_name : _("<none>"));
|
||||||
|
|
||||||
while (i < sizeof (chanopt) / sizeof (channel_options))
|
while (i < sizeof (chanopt) / sizeof (channel_options))
|
||||||
@@ -290,7 +281,7 @@ chanopt_load_all (void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (current)
|
if (current)
|
||||||
chanopt_add_opt (current, buf, str_to_chanopt (eq + 2));
|
chanopt_add_opt (current, buf, atoi (eq + 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -397,7 +388,7 @@ chanopt_save_one_channel (chanopt_in_memory *co, int fh)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
chanopt_save_all (gboolean flush)
|
chanopt_save_all (void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int num_saved;
|
int num_saved;
|
||||||
@@ -439,21 +430,15 @@ chanopt_save_all (gboolean flush)
|
|||||||
}
|
}
|
||||||
|
|
||||||
cont:
|
cont:
|
||||||
if (flush)
|
g_free (co->network);
|
||||||
{
|
g_free (co->channel);
|
||||||
g_free (co->network);
|
g_free (co);
|
||||||
g_free (co->channel);
|
|
||||||
g_free (co);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
close (fh);
|
close (fh);
|
||||||
|
|
||||||
if (flush)
|
g_slist_free (chanopt_list);
|
||||||
{
|
chanopt_list = NULL;
|
||||||
g_slist_free (chanopt_list);
|
|
||||||
chanopt_list = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
chanopt_open = FALSE;
|
chanopt_open = FALSE;
|
||||||
chanopt_changed = FALSE;
|
chanopt_changed = FALSE;
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
int chanopt_command (session *sess, char *tbuf, char *word[], char *word_eol[]);
|
int chanopt_command (session *sess, char *tbuf, char *word[], char *word_eol[]);
|
||||||
gboolean chanopt_is_set (unsigned int global, guint8 per_chan_setting);
|
gboolean chanopt_is_set (unsigned int global, guint8 per_chan_setting);
|
||||||
void chanopt_save_all (gboolean flush);
|
void chanopt_save_all (void);
|
||||||
void chanopt_save (session *sess);
|
void chanopt_save (session *sess);
|
||||||
void chanopt_load (session *sess);
|
void chanopt_load (session *sess);
|
||||||
|
|
||||||
|
|||||||
@@ -960,7 +960,7 @@ hexchat_exit (void)
|
|||||||
notify_save ();
|
notify_save ();
|
||||||
ignore_save ();
|
ignore_save ();
|
||||||
free_sessions ();
|
free_sessions ();
|
||||||
chanopt_save_all (TRUE);
|
chanopt_save_all ();
|
||||||
servlist_cleanup ();
|
servlist_cleanup ();
|
||||||
fe_exit ();
|
fe_exit ();
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-1
@@ -840,7 +840,9 @@ inbound_005 (server * serv, char *word[], const message_tags_data *tags_data)
|
|||||||
} else if (strncmp (word[w], "CASEMAPPING=", 12) == 0)
|
} else if (strncmp (word[w], "CASEMAPPING=", 12) == 0)
|
||||||
{
|
{
|
||||||
if (strcmp (word[w] + 12, "ascii") == 0) /* bahamut */
|
if (strcmp (word[w] + 12, "ascii") == 0) /* bahamut */
|
||||||
serv->p_cmp = (void *)g_ascii_strcasecmp;
|
serv->p_cmp = g_ascii_strcasecmp;
|
||||||
|
else if (strcmp (word[w] + 12, "rfc3454") == 0)
|
||||||
|
serv->p_cmp = rfc3454_casecmp;
|
||||||
} else if (strncmp (word[w], "CHARSET=", 8) == 0)
|
} else if (strncmp (word[w], "CHARSET=", 8) == 0)
|
||||||
{
|
{
|
||||||
if (g_ascii_strncasecmp (word[w] + 8, "UTF-8", 5) == 0)
|
if (g_ascii_strncasecmp (word[w] + 8, "UTF-8", 5) == 0)
|
||||||
|
|||||||
@@ -581,7 +581,7 @@ cmd_chanopt (struct session *sess, char *tbuf, char *word[], char *word_eol[])
|
|||||||
|
|
||||||
/* chanopt.c */
|
/* chanopt.c */
|
||||||
ret = chanopt_command (sess, tbuf, word, word_eol);
|
ret = chanopt_command (sess, tbuf, word, word_eol);
|
||||||
chanopt_save_all (FALSE);
|
chanopt_save_all ();
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -3439,9 +3439,10 @@ cmd_server (struct session *sess, char *tbuf, char *word[], char *word_eol[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* try to associate this connection with a listed network */
|
/* try to associate this connection with a listed network */
|
||||||
/* may return NULL, but that's OK */
|
if (!serv->network)
|
||||||
if ((serv->network = servlist_net_find_from_server (server_name)))
|
/* search for this hostname in the entire server list */
|
||||||
server_set_encoding (serv, ((ircnet*)serv->network)->encoding);
|
serv->network = servlist_net_find_from_server (server_name);
|
||||||
|
/* may return NULL, but that's OK */
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -3869,7 +3870,7 @@ const struct commands xc_cmds[] = {
|
|||||||
{"CHANOPT", cmd_chanopt, 0, 0, 1, N_("CHANOPT [-quiet] <variable> [<value>]")},
|
{"CHANOPT", cmd_chanopt, 0, 0, 1, N_("CHANOPT [-quiet] <variable> [<value>]")},
|
||||||
{"CHARSET", cmd_charset, 0, 0, 1, N_("CHARSET [<encoding>], get or set the encoding used for the current connection")},
|
{"CHARSET", cmd_charset, 0, 0, 1, N_("CHARSET [<encoding>], get or set the encoding used for the current connection")},
|
||||||
{"CLEAR", cmd_clear, 0, 0, 1, N_("CLEAR [ALL|HISTORY|[-]<amount>], Clears the current text window or command history")},
|
{"CLEAR", cmd_clear, 0, 0, 1, N_("CLEAR [ALL|HISTORY|[-]<amount>], Clears the current text window or command history")},
|
||||||
{"CLOSE", cmd_close, 0, 0, 1, N_("CLOSE [-m], Closes the current tab, closing the window if this is the only open tab, or with the \"-m\" flag, closes all queries.")},
|
{"CLOSE", cmd_close, 0, 0, 1, N_("CLOSE [-m], Closes the current window/tab or all queries")},
|
||||||
|
|
||||||
{"COUNTRY", cmd_country, 0, 0, 1,
|
{"COUNTRY", cmd_country, 0, 0, 1,
|
||||||
N_("COUNTRY [-s] <code|wildcard>, finds a country code, eg: au = australia")},
|
N_("COUNTRY [-s] <code|wildcard>, finds a country code, eg: au = australia")},
|
||||||
|
|||||||
+22
-63
@@ -34,32 +34,6 @@ typedef struct ident_info
|
|||||||
gchar *username;
|
gchar *username;
|
||||||
} ident_info;
|
} ident_info;
|
||||||
|
|
||||||
static void
|
|
||||||
stream_close_ready (GObject *source, GAsyncResult *res, gpointer userdata)
|
|
||||||
{
|
|
||||||
GError *err = NULL;
|
|
||||||
|
|
||||||
if (!g_io_stream_close_finish (G_IO_STREAM(source), res, &err))
|
|
||||||
{
|
|
||||||
g_warning ("%s", err->message);
|
|
||||||
g_error_free (err);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_object_unref (source);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
ident_info_free (ident_info *info)
|
|
||||||
{
|
|
||||||
if (G_LIKELY(info))
|
|
||||||
{
|
|
||||||
g_io_stream_close_async (G_IO_STREAM(info->conn), G_PRIORITY_DEFAULT,
|
|
||||||
NULL, stream_close_ready, NULL);
|
|
||||||
g_free (info->username);
|
|
||||||
g_free (info);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
identd_cleanup_response_cb (gpointer userdata)
|
identd_cleanup_response_cb (gpointer userdata)
|
||||||
{
|
{
|
||||||
@@ -116,7 +90,9 @@ identd_write_ready (GOutputStream *stream, GAsyncResult *res, ident_info *info)
|
|||||||
{
|
{
|
||||||
g_output_stream_write_finish (stream, res, NULL);
|
g_output_stream_write_finish (stream, res, NULL);
|
||||||
|
|
||||||
ident_info_free (info);
|
g_free (info->username);
|
||||||
|
g_object_unref (info->conn);
|
||||||
|
g_free (info);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -140,47 +116,30 @@ identd_read_ready (GDataInputStream *in_stream, GAsyncResult *res, ident_info *i
|
|||||||
remote = g_ascii_strtoull (p + 1, NULL, 0);
|
remote = g_ascii_strtoull (p + 1, NULL, 0);
|
||||||
g_free (read_buf);
|
g_free (read_buf);
|
||||||
|
|
||||||
g_snprintf (buf, sizeof (buf), "%"G_GUINT16_FORMAT", %"G_GUINT16_FORMAT" : ",
|
|
||||||
(guint16)MIN(local, G_MAXUINT16), (guint16)MIN(remote, G_MAXUINT16));
|
|
||||||
|
|
||||||
if (!local || !remote || local > G_MAXUINT16 || remote > G_MAXUINT16)
|
if (!local || !remote || local > G_MAXUINT16 || remote > G_MAXUINT16)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
info->username = g_strdup (g_hash_table_lookup (responses, GINT_TO_POINTER (local)));
|
||||||
|
if (!info->username)
|
||||||
|
goto cleanup;
|
||||||
|
g_hash_table_remove (responses, GINT_TO_POINTER (local));
|
||||||
|
|
||||||
|
if ((sok_addr = g_socket_connection_get_remote_address (info->conn, NULL)))
|
||||||
{
|
{
|
||||||
g_strlcat (buf, "ERROR : INVALID-PORT\r\n", sizeof (buf));
|
GInetAddress *inet_addr;
|
||||||
g_debug ("Identd: Recieved invalid port");
|
gchar *addr;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
info->username = g_hash_table_lookup (responses, GINT_TO_POINTER (local));
|
|
||||||
if (!info->username)
|
|
||||||
{
|
|
||||||
g_strlcat (buf, "ERROR : NO-USER\r\n", sizeof (buf));
|
|
||||||
g_debug ("Identd: Recieved invalid local port");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const gsize len = strlen (buf);
|
|
||||||
|
|
||||||
g_hash_table_steal (responses, GINT_TO_POINTER (local));
|
inet_addr = g_inet_socket_address_get_address (G_INET_SOCKET_ADDRESS (sok_addr));
|
||||||
|
addr = g_inet_address_to_string (inet_addr);
|
||||||
|
|
||||||
g_snprintf (buf + len, sizeof (buf) - len, "USERID : UNIX : %s\r\n", info->username);
|
hexchat_printf (ph, _("*\tServicing ident request from %s as %s"), addr, info->username);
|
||||||
|
|
||||||
if ((sok_addr = g_socket_connection_get_remote_address (info->conn, NULL)))
|
g_object_unref (sok_addr);
|
||||||
{
|
g_object_unref (inet_addr);
|
||||||
GInetAddress *inet_addr;
|
g_free (addr);
|
||||||
gchar *addr;
|
|
||||||
|
|
||||||
inet_addr = g_inet_socket_address_get_address (G_INET_SOCKET_ADDRESS (sok_addr));
|
|
||||||
addr = g_inet_address_to_string (inet_addr);
|
|
||||||
|
|
||||||
hexchat_printf (ph, _("*\tServicing ident request from %s as %s"), addr, info->username);
|
|
||||||
|
|
||||||
g_object_unref (sok_addr);
|
|
||||||
g_object_unref (inet_addr);
|
|
||||||
g_free (addr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_snprintf (buf, sizeof (buf), "%"G_GUINT16_FORMAT", %"G_GUINT16_FORMAT" : USERID : UNIX : %s\r\n", (guint16)local, (guint16)remote, info->username);
|
||||||
out_stream = g_io_stream_get_output_stream (G_IO_STREAM (info->conn));
|
out_stream = g_io_stream_get_output_stream (G_IO_STREAM (info->conn));
|
||||||
g_output_stream_write_async (out_stream, buf, strlen (buf), G_PRIORITY_DEFAULT,
|
g_output_stream_write_async (out_stream, buf, strlen (buf), G_PRIORITY_DEFAULT,
|
||||||
NULL, (GAsyncReadyCallback)identd_write_ready, info);
|
NULL, (GAsyncReadyCallback)identd_write_ready, info);
|
||||||
@@ -189,7 +148,8 @@ identd_read_ready (GDataInputStream *in_stream, GAsyncResult *res, ident_info *i
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ident_info_free (info);
|
g_object_unref (info->conn);
|
||||||
|
g_free (info);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
@@ -237,7 +197,6 @@ identd_start_server (void)
|
|||||||
{
|
{
|
||||||
hexchat_printf (ph, _("*\tError starting identd server: %s"), error->message);
|
hexchat_printf (ph, _("*\tError starting identd server: %s"), error->message);
|
||||||
|
|
||||||
g_error_free (error);
|
|
||||||
g_clear_object (&service);
|
g_clear_object (&service);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-11
@@ -455,7 +455,6 @@ plugin_auto_load (session *sess)
|
|||||||
for_files (lib_dir, "hcdoat.dll", plugin_auto_load_cb);
|
for_files (lib_dir, "hcdoat.dll", plugin_auto_load_cb);
|
||||||
for_files (lib_dir, "hcexec.dll", plugin_auto_load_cb);
|
for_files (lib_dir, "hcexec.dll", plugin_auto_load_cb);
|
||||||
for_files (lib_dir, "hcfishlim.dll", plugin_auto_load_cb);
|
for_files (lib_dir, "hcfishlim.dll", plugin_auto_load_cb);
|
||||||
for_files(lib_dir, "hclua.dll", plugin_auto_load_cb);
|
|
||||||
for_files (lib_dir, "hcmpcinfo.dll", plugin_auto_load_cb);
|
for_files (lib_dir, "hcmpcinfo.dll", plugin_auto_load_cb);
|
||||||
for_files (lib_dir, "hcperl.dll", plugin_auto_load_cb);
|
for_files (lib_dir, "hcperl.dll", plugin_auto_load_cb);
|
||||||
for_files (lib_dir, "hcpython2.dll", plugin_auto_load_cb);
|
for_files (lib_dir, "hcpython2.dll", plugin_auto_load_cb);
|
||||||
@@ -1568,14 +1567,6 @@ hexchat_list_int (hexchat_plugin *ph, hexchat_list *xlist, const char *name)
|
|||||||
case 0xd1b: /* id */
|
case 0xd1b: /* id */
|
||||||
return ((struct session *)data)->server->id;
|
return ((struct session *)data)->server->id;
|
||||||
case 0x5cfee87: /* flags */
|
case 0x5cfee87: /* flags */
|
||||||
/* used if alert_taskbar is unset */ /* 20 */
|
|
||||||
tmp <<= 1;
|
|
||||||
tmp |= ((struct session *)data)->alert_taskbar; /* 19 */
|
|
||||||
tmp <<= 1;
|
|
||||||
/* used if alert_tray is unset */ /* 18 */
|
|
||||||
tmp <<= 1;
|
|
||||||
tmp |= ((struct session *)data)->alert_tray; /* 17 */
|
|
||||||
tmp <<= 1;
|
|
||||||
/* used if text_strip is unset */ /* 16 */
|
/* used if text_strip is unset */ /* 16 */
|
||||||
tmp <<= 1;
|
tmp <<= 1;
|
||||||
tmp |= ((struct session *)data)->text_strip; /* 15 */
|
tmp |= ((struct session *)data)->text_strip; /* 15 */
|
||||||
@@ -1588,9 +1579,9 @@ hexchat_list_int (hexchat_plugin *ph, hexchat_list *xlist, const char *name)
|
|||||||
tmp <<= 1;
|
tmp <<= 1;
|
||||||
tmp |= ((struct session *)data)->text_logging; /* 11 */
|
tmp |= ((struct session *)data)->text_logging; /* 11 */
|
||||||
tmp <<= 1;
|
tmp <<= 1;
|
||||||
/* unused for historical reasons */ /* 10 */
|
tmp |= ((struct session *)data)->alert_taskbar; /* 10 */
|
||||||
tmp <<= 1;
|
tmp <<= 1;
|
||||||
/* used if alert_beep is unset */ /* 9 */
|
tmp |= ((struct session *)data)->alert_tray; /* 9 */
|
||||||
tmp <<= 1;
|
tmp <<= 1;
|
||||||
tmp |= ((struct session *)data)->alert_beep; /* 8 */
|
tmp |= ((struct session *)data)->alert_beep; /* 8 */
|
||||||
tmp <<= 1;
|
tmp <<= 1;
|
||||||
|
|||||||
@@ -1178,19 +1178,13 @@ process_named_msg (session *sess, char *type, char *word[], char *word_eol[],
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_OPENSSL
|
#ifdef USE_OPENSSL
|
||||||
/* QuakeNet CHALLENGE upon our request */
|
if (!strncmp (text, "CHALLENGE ", 10)) /* QuakeNet CHALLENGE upon our request */
|
||||||
if (serv->loginmethod == LOGIN_CHALLENGEAUTH && !serv->p_cmp (word[1], CHALLENGEAUTH_FULLHOST)
|
|
||||||
&& !strncmp (text, "CHALLENGE ", 10) && *serv->password)
|
|
||||||
{
|
{
|
||||||
char *response;
|
char *response = challengeauth_response (((ircnet *)serv->network)->user ? ((ircnet *)serv->network)->user : prefs.hex_irc_user_name, serv->password, word[5]);
|
||||||
ircnet *net = serv->network;
|
|
||||||
char *user = net && net->user ? net->user : prefs.hex_irc_user_name;
|
|
||||||
|
|
||||||
response = challengeauth_response (user, serv->password, word[5]);
|
|
||||||
|
|
||||||
tcp_sendf (serv, "PRIVMSG %s :CHALLENGEAUTH %s %s %s\r\n",
|
tcp_sendf (serv, "PRIVMSG %s :CHALLENGEAUTH %s %s %s\r\n",
|
||||||
CHALLENGEAUTH_NICK,
|
CHALLENGEAUTH_NICK,
|
||||||
user,
|
((ircnet *)serv->network)->user ? ((ircnet *)serv->network)->user : prefs.hex_irc_user_name,
|
||||||
response,
|
response,
|
||||||
CHALLENGEAUTH_ALGO);
|
CHALLENGEAUTH_ALGO);
|
||||||
|
|
||||||
|
|||||||
+6
-8
@@ -833,21 +833,20 @@ server_read_child (GIOChannel *source, GIOCondition condition, server *serv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
struct sockaddr_storage addr;
|
struct sockaddr addr;
|
||||||
int addr_len = sizeof (addr);
|
int addr_len = sizeof (addr);
|
||||||
guint16 port;
|
guint16 port;
|
||||||
ircnet *net = serv->network;
|
|
||||||
|
|
||||||
if (!getsockname (serv->sok, (struct sockaddr *)&addr, &addr_len))
|
if (!getsockname (serv->sok, &addr, &addr_len))
|
||||||
{
|
{
|
||||||
if (addr.ss_family == AF_INET)
|
if (addr.sa_family == AF_INET)
|
||||||
port = ntohs(((struct sockaddr_in *)&addr)->sin_port);
|
port = ntohs(((struct sockaddr_in *)&addr)->sin_port);
|
||||||
else
|
else
|
||||||
port = ntohs(((struct sockaddr_in6 *)&addr)->sin6_port);
|
port = ntohs(((struct sockaddr_in6 *)&addr)->sin6_port);
|
||||||
|
|
||||||
g_snprintf (outbuf, sizeof (outbuf), "IDENTD %"G_GUINT16_FORMAT" ", port);
|
g_snprintf (outbuf, sizeof (outbuf), "IDENTD %"G_GUINT16_FORMAT" ", port);
|
||||||
if (net && net->user && !(net->flags & FLAG_USE_GLOBAL))
|
if (serv->network && ((ircnet *)serv->network)->user)
|
||||||
g_strlcat (outbuf, net->user, sizeof (outbuf));
|
g_strlcat (outbuf, ((ircnet *)serv->network)->user, sizeof (outbuf));
|
||||||
else
|
else
|
||||||
g_strlcat (outbuf, prefs.hex_irc_user_name, sizeof (outbuf));
|
g_strlcat (outbuf, prefs.hex_irc_user_name, sizeof (outbuf));
|
||||||
|
|
||||||
@@ -1729,8 +1728,7 @@ server_set_defaults (server *serv)
|
|||||||
serv->nick_modes = g_strdup ("ohv");
|
serv->nick_modes = g_strdup ("ohv");
|
||||||
serv->sasl_mech = MECH_PLAIN;
|
serv->sasl_mech = MECH_PLAIN;
|
||||||
|
|
||||||
if (!serv->encoding)
|
server_set_encoding (serv, "UTF-8");
|
||||||
server_set_encoding (serv, "UTF-8");
|
|
||||||
|
|
||||||
serv->nickcount = 1;
|
serv->nickcount = 1;
|
||||||
serv->end_of_motd = FALSE;
|
serv->end_of_motd = FALSE;
|
||||||
|
|||||||
+38
-19
@@ -117,7 +117,7 @@ static const struct defaultserver def[] =
|
|||||||
/* Self signed */
|
/* Self signed */
|
||||||
{0, "irc.criten.net"},
|
{0, "irc.criten.net"},
|
||||||
|
|
||||||
{"DALnet", 0, 0, 0, LOGIN_NICKSERV},
|
{"DALnet", 0},
|
||||||
/* Self signed */
|
/* Self signed */
|
||||||
{0, "us.dal.net"},
|
{0, "us.dal.net"},
|
||||||
|
|
||||||
@@ -189,12 +189,6 @@ static const struct defaultserver def[] =
|
|||||||
{0, "irc.gimp.org"},
|
{0, "irc.gimp.org"},
|
||||||
{0, "irc.gnome.org"},
|
{0, "irc.gnome.org"},
|
||||||
|
|
||||||
{"GlobalGamers", 0},
|
|
||||||
#ifdef USE_OPENSSL
|
|
||||||
{0, "irc.globalgamers.net/+6660"},
|
|
||||||
#endif
|
|
||||||
{0, "irc.globalgamers.net"},
|
|
||||||
|
|
||||||
{"Hashmark", 0},
|
{"Hashmark", 0},
|
||||||
{0, "irc.hashmark.net"},
|
{0, "irc.hashmark.net"},
|
||||||
|
|
||||||
@@ -363,6 +357,42 @@ static const struct defaultserver def[] =
|
|||||||
|
|
||||||
GSList *network_list = 0;
|
GSList *network_list = 0;
|
||||||
|
|
||||||
|
#if !GLIB_CHECK_VERSION(2,34,0)
|
||||||
|
#define g_slist_copy_deep servlist_slist_copy_deep
|
||||||
|
/* FIXME copy-paste from gslist.c, should be dumped sometime */
|
||||||
|
static GSList*
|
||||||
|
servlist_slist_copy_deep (GSList *list, GCopyFunc func, gpointer user_data)
|
||||||
|
{
|
||||||
|
GSList *new_list = NULL;
|
||||||
|
|
||||||
|
if (list)
|
||||||
|
{
|
||||||
|
GSList *last;
|
||||||
|
|
||||||
|
new_list = g_slice_new (GSList);
|
||||||
|
if (func)
|
||||||
|
new_list->data = func (list->data, user_data);
|
||||||
|
else
|
||||||
|
new_list->data = list->data;
|
||||||
|
last = new_list;
|
||||||
|
list = list->next;
|
||||||
|
while (list)
|
||||||
|
{
|
||||||
|
last->next = g_slice_new (GSList);
|
||||||
|
last = last->next;
|
||||||
|
if (func)
|
||||||
|
last->data = func (list->data, user_data);
|
||||||
|
else
|
||||||
|
last->data = list->data;
|
||||||
|
list = list->next;
|
||||||
|
}
|
||||||
|
last->next = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new_list;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
favchannel *
|
favchannel *
|
||||||
servlist_favchan_copy (favchannel *fav)
|
servlist_favchan_copy (favchannel *fav)
|
||||||
{
|
{
|
||||||
@@ -684,19 +714,8 @@ servlist_net_find_from_server (char *server_name)
|
|||||||
slist = net->servlist;
|
slist = net->servlist;
|
||||||
while (slist)
|
while (slist)
|
||||||
{
|
{
|
||||||
gsize hostname_len;
|
|
||||||
const char *hostname, *p;
|
|
||||||
|
|
||||||
serv = slist->data;
|
serv = slist->data;
|
||||||
hostname = serv->hostname;
|
if (g_ascii_strcasecmp (serv->hostname, server_name) == 0)
|
||||||
|
|
||||||
/* Ignore port when comparing */
|
|
||||||
if ((p = strchr (hostname, '/')))
|
|
||||||
hostname_len = p - hostname;
|
|
||||||
else
|
|
||||||
hostname_len = strlen (hostname);
|
|
||||||
|
|
||||||
if (g_ascii_strncasecmp (hostname, server_name, hostname_len) == 0)
|
|
||||||
return net;
|
return net;
|
||||||
slist = slist->next;
|
slist = slist->next;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,6 @@ extern GSList *network_list;
|
|||||||
|
|
||||||
#define CHALLENGEAUTH_ALGO "HMAC-SHA-256"
|
#define CHALLENGEAUTH_ALGO "HMAC-SHA-256"
|
||||||
#define CHALLENGEAUTH_NICK "Q@CServe.quakenet.org"
|
#define CHALLENGEAUTH_NICK "Q@CServe.quakenet.org"
|
||||||
#define CHALLENGEAUTH_FULLHOST "Q!TheQBot@CServe.quakenet.org"
|
|
||||||
|
|
||||||
/* DEFAULT_CHARSET is already defined in wingdi.h */
|
/* DEFAULT_CHARSET is already defined in wingdi.h */
|
||||||
#define IRC_DEFAULT_CHARSET "UTF-8 (Unicode)"
|
#define IRC_DEFAULT_CHARSET "UTF-8 (Unicode)"
|
||||||
|
|||||||
+6
-12
@@ -222,7 +222,7 @@ scrollback_load (session *sess)
|
|||||||
GDataInputStream *istream;
|
GDataInputStream *istream;
|
||||||
gchar *buf, *text;
|
gchar *buf, *text;
|
||||||
gint lines = 0;
|
gint lines = 0;
|
||||||
time_t stamp = 0;
|
time_t stamp;
|
||||||
|
|
||||||
if (sess->text_scrollback == SET_DEFAULT)
|
if (sess->text_scrollback == SET_DEFAULT)
|
||||||
{
|
{
|
||||||
@@ -272,19 +272,12 @@ scrollback_load (session *sess)
|
|||||||
* Some don't even have a timestamp
|
* Some don't even have a timestamp
|
||||||
* Some don't have any text at all
|
* Some don't have any text at all
|
||||||
*/
|
*/
|
||||||
if (buf[0] == 'T' && buf[1] == ' ')
|
if (buf[0] == 'T')
|
||||||
{
|
{
|
||||||
if (sizeof (time_t) == 4)
|
if (sizeof (time_t) == 4)
|
||||||
stamp = strtoul (buf + 2, NULL, 10);
|
stamp = g_ascii_strtoull (buf + 2, NULL, 10);
|
||||||
else
|
else
|
||||||
stamp = g_ascii_strtoull (buf + 2, NULL, 10); /* in case time_t is 64 bits */
|
stamp = g_ascii_strtoull (buf + 2, NULL, 10); /* in case time_t is 64 bits */
|
||||||
|
|
||||||
if (G_UNLIKELY(stamp == 0))
|
|
||||||
{
|
|
||||||
g_warning ("Invalid timestamp in scrollback file");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
text = strchr (buf + 3, ' ');
|
text = strchr (buf + 3, ' ');
|
||||||
if (text && text[1])
|
if (text && text[1])
|
||||||
{
|
{
|
||||||
@@ -321,7 +314,7 @@ scrollback_load (session *sess)
|
|||||||
/* If its only an encoding error it may be specific to the line */
|
/* If its only an encoding error it may be specific to the line */
|
||||||
if (g_error_matches (err, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE))
|
if (g_error_matches (err, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE))
|
||||||
{
|
{
|
||||||
g_warning ("Invalid utf8 in scrollback file");
|
g_warning ("Invalid utf8 in scrollback file\n");
|
||||||
g_clear_error (&err);
|
g_clear_error (&err);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -343,7 +336,8 @@ scrollback_load (session *sess)
|
|||||||
if (lines)
|
if (lines)
|
||||||
{
|
{
|
||||||
text = ctime (&stamp);
|
text = ctime (&stamp);
|
||||||
buf = g_strdup_printf ("\n*\t%s %s\n", _("Loaded log from"), text);
|
text[24] = 0; /* get rid of the \n */
|
||||||
|
buf = g_strdup_printf ("\n*\t%s %s\n\n", _("Loaded log from"), text);
|
||||||
fe_print_text (sess, buf, 0, TRUE);
|
fe_print_text (sess, buf, 0, TRUE);
|
||||||
g_free (buf);
|
g_free (buf);
|
||||||
/*EMIT_SIGNAL (XP_TE_GENMSG, sess, "*", buf, NULL, NULL, NULL, 0);*/
|
/*EMIT_SIGNAL (XP_TE_GENMSG, sess, "*", buf, NULL, NULL, NULL, 0);*/
|
||||||
|
|||||||
@@ -533,7 +533,6 @@ struct
|
|||||||
{ "spotify", "", URI_PATH },
|
{ "spotify", "", URI_PATH },
|
||||||
{ "lastfm", "/", URI_PATH },
|
{ "lastfm", "/", URI_PATH },
|
||||||
{ "xfire", "", URI_PATH },
|
{ "xfire", "", URI_PATH },
|
||||||
{ "ts3server", "", URI_PATH },
|
|
||||||
{ NULL, "", 0}
|
{ NULL, "", 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+30
-17
@@ -1018,6 +1018,33 @@ make_ping_time (void)
|
|||||||
return (timev.tv_sec - 50000) * 1000 + timev.tv_usec/1000;
|
return (timev.tv_sec - 50000) * 1000 + timev.tv_usec/1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* https://tools.ietf.org/html/rfc3454
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
rfc3454_casecmp (const char *s1, const char *s2)
|
||||||
|
{
|
||||||
|
char *s1_lower, *s2_lower, *s1_normal, *s2_normal;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (strcmp (s1, s2) == 0)
|
||||||
|
return 0; /* Exact same already */
|
||||||
|
|
||||||
|
s1_lower = g_utf8_casefold(s1, -1);
|
||||||
|
s2_lower = g_utf8_casefold(s2, -1);
|
||||||
|
s1_normal = g_utf8_normalize(s1_lower, -1, G_NORMALIZE_NFKC);
|
||||||
|
s2_normal = g_utf8_normalize(s2_lower, -1, G_NORMALIZE_NFKC);
|
||||||
|
|
||||||
|
ret = strcmp (s1_normal, s2_normal);
|
||||||
|
|
||||||
|
g_free (s1_normal);
|
||||||
|
g_free (s2_normal);
|
||||||
|
g_free (s1_lower);
|
||||||
|
g_free (s2_lower);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
* This technique was borrowed in part from the source code to
|
* This technique was borrowed in part from the source code to
|
||||||
@@ -1414,21 +1441,6 @@ str_sha256hash (char *string)
|
|||||||
return g_strdup (buf);
|
return g_strdup (buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *
|
|
||||||
rfc_strlower (const char *str)
|
|
||||||
{
|
|
||||||
size_t i, len = strlen(str);
|
|
||||||
char *lower = g_new(char, len + 1);
|
|
||||||
|
|
||||||
for (i = 0; i < len; ++i)
|
|
||||||
{
|
|
||||||
lower[i] = rfc_tolower(str[i]);
|
|
||||||
}
|
|
||||||
lower[i] = '\0';
|
|
||||||
|
|
||||||
return lower;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Generate CHALLENGEAUTH response for QuakeNet login.
|
* \brief Generate CHALLENGEAUTH response for QuakeNet login.
|
||||||
*
|
*
|
||||||
@@ -1445,7 +1457,7 @@ rfc_strlower (const char *str)
|
|||||||
* <a href="http://stackoverflow.com/questions/242665/understanding-engine-initialization-in-openssl">example 2</a>.
|
* <a href="http://stackoverflow.com/questions/242665/understanding-engine-initialization-in-openssl">example 2</a>.
|
||||||
*/
|
*/
|
||||||
char *
|
char *
|
||||||
challengeauth_response (const char *username, const char *password, const char *challenge)
|
challengeauth_response (char *username, char *password, char *challenge)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
char *user;
|
char *user;
|
||||||
@@ -1456,7 +1468,8 @@ challengeauth_response (const char *username, const char *password, const char *
|
|||||||
unsigned char *digest;
|
unsigned char *digest;
|
||||||
GString *buf = g_string_new_len (NULL, SHA256_DIGEST_LENGTH * 2);
|
GString *buf = g_string_new_len (NULL, SHA256_DIGEST_LENGTH * 2);
|
||||||
|
|
||||||
user = rfc_strlower (username); /* convert username to lowercase as per the RFC */
|
user = g_strdup (username);
|
||||||
|
*user = rfc_tolower (*username); /* convert username to lowercase as per the RFC */
|
||||||
|
|
||||||
pass = g_strndup (password, 10); /* truncate to 10 characters */
|
pass = g_strndup (password, 10); /* truncate to 10 characters */
|
||||||
passhash = str_sha256hash (pass);
|
passhash = str_sha256hash (pass);
|
||||||
|
|||||||
+2
-1
@@ -44,6 +44,7 @@ char *file_part (char *file);
|
|||||||
void for_files (char *dirname, char *mask, void callback (char *file));
|
void for_files (char *dirname, char *mask, void callback (char *file));
|
||||||
int rfc_casecmp (const char *, const char *);
|
int rfc_casecmp (const char *, const char *);
|
||||||
int rfc_ncasecmp (char *, char *, int);
|
int rfc_ncasecmp (char *, char *, int);
|
||||||
|
int rfc3454_casecmp (const char *s1, const char *s2) G_GNUC_PURE;
|
||||||
int buf_get_line (char *, char **, int *, int len);
|
int buf_get_line (char *, char **, int *, int len);
|
||||||
char *nocasestrstr (const char *text, const char *tofind);
|
char *nocasestrstr (const char *text, const char *tofind);
|
||||||
char *country (char *);
|
char *country (char *);
|
||||||
@@ -76,7 +77,7 @@ void canonalize_key (char *key);
|
|||||||
int portable_mode (void);
|
int portable_mode (void);
|
||||||
int unity_mode (void);
|
int unity_mode (void);
|
||||||
char *encode_sasl_pass_plain (char *user, char *pass);
|
char *encode_sasl_pass_plain (char *user, char *pass);
|
||||||
char *challengeauth_response (const char *username, const char *password, const char *challenge);
|
char *challengeauth_response (char *username, char *password, char *challenge);
|
||||||
size_t strftime_validated (char *dest, size_t destsize, const char *format, const struct tm *time);
|
size_t strftime_validated (char *dest, size_t destsize, const char *format, const struct tm *time);
|
||||||
gsize strftime_utf8 (char *dest, gsize destsize, const char *format, time_t time);
|
gsize strftime_utf8 (char *dest, gsize destsize, const char *format, time_t time);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -809,7 +809,7 @@ banlist_opengui (struct session *sess)
|
|||||||
sess->server->servername);
|
sess->server->servername);
|
||||||
|
|
||||||
banl->window = mg_create_generic_tab ("BanList", tbuf, FALSE,
|
banl->window = mg_create_generic_tab ("BanList", tbuf, FALSE,
|
||||||
TRUE, banlist_closegui, banl, 700, 300, &vbox, sess->server);
|
TRUE, banlist_closegui, banl, 550, 200, &vbox, sess->server);
|
||||||
gtkutil_destroy_on_esc (banl->window);
|
gtkutil_destroy_on_esc (banl->window);
|
||||||
|
|
||||||
gtk_container_set_border_width (GTK_CONTAINER (banl->window), 3);
|
gtk_container_set_border_width (GTK_CONTAINER (banl->window), 3);
|
||||||
|
|||||||
@@ -685,8 +685,6 @@ gtkutil_treeview_new (GtkWidget *box, GtkTreeModel *model,
|
|||||||
attr, col_id, NULL);
|
attr, col_id, NULL);
|
||||||
}
|
}
|
||||||
gtk_tree_view_append_column (GTK_TREE_VIEW (view), col);
|
gtk_tree_view_append_column (GTK_TREE_VIEW (view), col);
|
||||||
if (title == NULL)
|
|
||||||
gtk_tree_view_column_set_visible (col, FALSE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
va_end (args);
|
va_end (args);
|
||||||
|
|||||||
@@ -349,7 +349,7 @@ ignore_gui_open ()
|
|||||||
ignorewin =
|
ignorewin =
|
||||||
mg_create_generic_tab ("IgnoreList", _(DISPLAY_NAME": Ignore list"),
|
mg_create_generic_tab ("IgnoreList", _(DISPLAY_NAME": Ignore list"),
|
||||||
FALSE, TRUE, close_ignore_gui_callback,
|
FALSE, TRUE, close_ignore_gui_callback,
|
||||||
NULL, 700, 300, &vbox, 0);
|
NULL, 600, 256, &vbox, 0);
|
||||||
gtkutil_destroy_on_esc (ignorewin);
|
gtkutil_destroy_on_esc (ignorewin);
|
||||||
|
|
||||||
view = ignore_treeview_new (vbox);
|
view = ignore_treeview_new (vbox);
|
||||||
|
|||||||
@@ -1514,7 +1514,7 @@ mg_set_guint8 (GtkCheckMenuItem *item, guint8 *setting)
|
|||||||
log_open_or_close (sess);
|
log_open_or_close (sess);
|
||||||
|
|
||||||
chanopt_save (sess);
|
chanopt_save (sess);
|
||||||
chanopt_save_all (FALSE);
|
chanopt_save_all ();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
@@ -20,10 +20,6 @@
|
|||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
#include <libnotify/notify.h>
|
#include <libnotify/notify.h>
|
||||||
|
|
||||||
#ifndef NOTIFY_CHECK_VERSION
|
|
||||||
#define NOTIFY_CHECK_VERSION(x,y,z) 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static gboolean strip_markup = FALSE;
|
static gboolean strip_markup = FALSE;
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -34,16 +30,8 @@ notification_backend_show (const char *title, const char *text)
|
|||||||
if (strip_markup)
|
if (strip_markup)
|
||||||
text = g_markup_escape_text (text, -1);
|
text = g_markup_escape_text (text, -1);
|
||||||
|
|
||||||
#if NOTIFY_CHECK_VERSION(0,7,0)
|
|
||||||
notification = notify_notification_new (title, text, "hexchat");
|
notification = notify_notification_new (title, text, "hexchat");
|
||||||
#else
|
|
||||||
notification = notify_notification_new (title, text, "hexchat", NULL);
|
|
||||||
#endif
|
|
||||||
#if NOTIFY_CHECK_VERSION(0,6,0)
|
|
||||||
notify_notification_set_hint (notification, "desktop-entry", g_variant_new_string ("hexchat"));
|
notify_notification_set_hint (notification, "desktop-entry", g_variant_new_string ("hexchat"));
|
||||||
#else
|
|
||||||
notify_notification_set_hint_string (notification, "desktop-entry", "hexchat");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
notify_notification_show (notification, NULL);
|
notify_notification_show (notification, NULL);
|
||||||
|
|
||||||
@@ -57,6 +45,9 @@ notification_backend_init (void)
|
|||||||
{
|
{
|
||||||
GList* server_caps;
|
GList* server_caps;
|
||||||
|
|
||||||
|
if (!NOTIFY_CHECK_VERSION (0, 7, 0))
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (!notify_init (PACKAGE_NAME))
|
if (!notify_init (PACKAGE_NAME))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,6 @@ enum
|
|||||||
VERSION_COLUMN,
|
VERSION_COLUMN,
|
||||||
FILE_COLUMN,
|
FILE_COLUMN,
|
||||||
DESC_COLUMN,
|
DESC_COLUMN,
|
||||||
FILEPATH_COLUMN,
|
|
||||||
N_COLUMNS
|
N_COLUMNS
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -58,14 +57,13 @@ plugingui_treeview_new (GtkWidget *box)
|
|||||||
int col_id;
|
int col_id;
|
||||||
|
|
||||||
store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING,
|
store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING,
|
||||||
G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
|
G_TYPE_STRING, G_TYPE_STRING);
|
||||||
g_return_val_if_fail (store != NULL, NULL);
|
g_return_val_if_fail (store != NULL, NULL);
|
||||||
view = gtkutil_treeview_new (box, GTK_TREE_MODEL (store), NULL,
|
view = gtkutil_treeview_new (box, GTK_TREE_MODEL (store), NULL,
|
||||||
NAME_COLUMN, _("Name"),
|
NAME_COLUMN, _("Name"),
|
||||||
VERSION_COLUMN, _("Version"),
|
VERSION_COLUMN, _("Version"),
|
||||||
FILE_COLUMN, _("File"),
|
FILE_COLUMN, _("File"),
|
||||||
DESC_COLUMN, _("Description"),
|
DESC_COLUMN, _("Description"), -1);
|
||||||
FILEPATH_COLUMN, NULL, -1);
|
|
||||||
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (view), TRUE);
|
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (view), TRUE);
|
||||||
for (col_id=0; (col = gtk_tree_view_get_column (GTK_TREE_VIEW (view), col_id));
|
for (col_id=0; (col = gtk_tree_view_get_column (GTK_TREE_VIEW (view), col_id));
|
||||||
col_id++)
|
col_id++)
|
||||||
@@ -88,7 +86,7 @@ plugingui_getfilename (GtkTreeView *view)
|
|||||||
sel = gtk_tree_view_get_selection (view);
|
sel = gtk_tree_view_get_selection (view);
|
||||||
if (gtk_tree_selection_get_selected (sel, &model, &iter))
|
if (gtk_tree_selection_get_selected (sel, &model, &iter))
|
||||||
{
|
{
|
||||||
gtk_tree_model_get_value (model, &iter, FILEPATH_COLUMN, &file);
|
gtk_tree_model_get_value (model, &iter, FILE_COLUMN, &file);
|
||||||
|
|
||||||
str = g_value_dup_string (&file);
|
str = g_value_dup_string (&file);
|
||||||
g_value_unset (&file);
|
g_value_unset (&file);
|
||||||
@@ -133,8 +131,7 @@ fe_pluginlist_update (void)
|
|||||||
gtk_list_store_set (store, &iter, NAME_COLUMN, pl->name,
|
gtk_list_store_set (store, &iter, NAME_COLUMN, pl->name,
|
||||||
VERSION_COLUMN, pl->version,
|
VERSION_COLUMN, pl->version,
|
||||||
FILE_COLUMN, file_part (pl->filename),
|
FILE_COLUMN, file_part (pl->filename),
|
||||||
DESC_COLUMN, pl->desc,
|
DESC_COLUMN, pl->desc, -1);
|
||||||
FILEPATH_COLUMN, pl->filename, -1);
|
|
||||||
}
|
}
|
||||||
list = list->next;
|
list = list->next;
|
||||||
}
|
}
|
||||||
@@ -182,7 +179,7 @@ plugingui_unload (GtkWidget * wid, gpointer unused)
|
|||||||
|
|
||||||
view = g_object_get_data (G_OBJECT (plugin_window), "view");
|
view = g_object_get_data (G_OBJECT (plugin_window), "view");
|
||||||
if (!gtkutil_treeview_get_selected (view, &iter, NAME_COLUMN, &modname,
|
if (!gtkutil_treeview_get_selected (view, &iter, NAME_COLUMN, &modname,
|
||||||
FILEPATH_COLUMN, &file, -1))
|
FILE_COLUMN, &file, -1))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (g_str_has_suffix (file, "."G_MODULE_SUFFIX))
|
if (g_str_has_suffix (file, "."G_MODULE_SUFFIX))
|
||||||
@@ -239,7 +236,7 @@ plugingui_open (void)
|
|||||||
|
|
||||||
plugin_window = mg_create_generic_tab ("Addons", _(DISPLAY_NAME": Plugins and Scripts"),
|
plugin_window = mg_create_generic_tab ("Addons", _(DISPLAY_NAME": Plugins and Scripts"),
|
||||||
FALSE, TRUE, plugingui_close, NULL,
|
FALSE, TRUE, plugingui_close, NULL,
|
||||||
700, 300, &vbox, 0);
|
500, 250, &vbox, 0);
|
||||||
gtkutil_destroy_on_esc (plugin_window);
|
gtkutil_destroy_on_esc (plugin_window);
|
||||||
|
|
||||||
view = plugingui_treeview_new (vbox);
|
view = plugingui_treeview_new (vbox);
|
||||||
|
|||||||
@@ -1319,7 +1319,7 @@ servlist_sanitize_hostname (char *host)
|
|||||||
if (c && c == e)
|
if (c && c == e)
|
||||||
*c = '/';
|
*c = '/';
|
||||||
|
|
||||||
return g_strstrip(ret);
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* remove leading slash */
|
/* remove leading slash */
|
||||||
|
|||||||
@@ -1410,7 +1410,7 @@ sexy_spell_entry_activate_language(SexySpellEntry *entry, const gchar *lang, GEr
|
|||||||
|
|
||||||
g_return_val_if_fail(entry != NULL, FALSE);
|
g_return_val_if_fail(entry != NULL, FALSE);
|
||||||
g_return_val_if_fail(SEXY_IS_SPELL_ENTRY(entry), FALSE);
|
g_return_val_if_fail(SEXY_IS_SPELL_ENTRY(entry), FALSE);
|
||||||
g_return_val_if_fail(lang != NULL && *lang != '\0', FALSE);
|
g_return_val_if_fail(lang != NULL && lang != '\0', FALSE);
|
||||||
|
|
||||||
if (!have_enchant)
|
if (!have_enchant)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|||||||
+2
-14
@@ -41,7 +41,6 @@
|
|||||||
<None Include="$(DepsRoot)\bin\iconv.dll" />
|
<None Include="$(DepsRoot)\bin\iconv.dll" />
|
||||||
<None Include="$(DepsRoot)\bin\libeay32.dll" />
|
<None Include="$(DepsRoot)\bin\libeay32.dll" />
|
||||||
<None Include="$(DepsRoot)\bin\libenchant.dll" />
|
<None Include="$(DepsRoot)\bin\libenchant.dll" />
|
||||||
<None Include="$(DepsRoot)\bin\libffi.dll" />
|
|
||||||
<None Include="$(DepsRoot)\bin\libintl.dll" />
|
<None Include="$(DepsRoot)\bin\libintl.dll" />
|
||||||
<None Include="$(DepsRoot)\bin\libpng16.dll" />
|
<None Include="$(DepsRoot)\bin\libpng16.dll" />
|
||||||
<None Include="$(DepsRoot)\bin\libxml2.dll" />
|
<None Include="$(DepsRoot)\bin\libxml2.dll" />
|
||||||
@@ -57,15 +56,7 @@
|
|||||||
<None Include="changelog.url" />
|
<None Include="changelog.url" />
|
||||||
<None Include="readme.url" />
|
<None Include="readme.url" />
|
||||||
|
|
||||||
<None Include="$(DepsRoot)\bin\lua51.dll" />
|
<Engines Include="$(DepsRoot)\lib\gtk-2.0\i686-pc-vs10\engines\**\*" />
|
||||||
<None Include="$(DepsRoot)\bin\girepository-1.0.dll" />
|
|
||||||
<LuaLib Include="$(DepsRoot)\lib\lua\**\*.dll" />
|
|
||||||
<LuaShare Include="$(DepsRoot)\share\lua\*.lua" />
|
|
||||||
<LuaShare Include="$(DepsRoot)\share\lua\**\*.lua" />
|
|
||||||
<LuaShare Include="$(DepsRoot)\share\lua\**\**\*.lua" />
|
|
||||||
<Typelib Include="$(DepsRoot)\lib\girepository-1.0\*.typelib" />
|
|
||||||
|
|
||||||
<Engines Include="$(DepsRoot)\lib\gtk-2.0\i686-pc-vs14\engines\**\*" />
|
|
||||||
|
|
||||||
<Share Include="share\**\*" />
|
<Share Include="share\**\*" />
|
||||||
|
|
||||||
@@ -78,7 +69,7 @@
|
|||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<Target Name="Build">
|
<Target Name="Build">
|
||||||
<Copy SourceFiles="@(None)" DestinationFolder="$(HexChatRel)" />
|
<Copy SourceFiles="@(None)" DestinationFolder="$(HexChatRel)" />
|
||||||
<Copy SourceFiles="@(Engines)" DestinationFiles="@(Engines->'$(HexChatRel)\lib\gtk-2.0\i686-pc-vs14\engines\%(RecursiveDir)%(Filename)%(Extension)')" />
|
<Copy SourceFiles="@(Engines)" DestinationFiles="@(Engines->'$(HexChatRel)\lib\gtk-2.0\i686-pc-vs10\engines\%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||||
<Copy SourceFiles="@(Share)" DestinationFiles="@(Share->'$(HexChatRel)\share\%(RecursiveDir)%(Filename)%(Extension)')" />
|
<Copy SourceFiles="@(Share)" DestinationFiles="@(Share->'$(HexChatRel)\share\%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||||
<Copy SourceFiles="@(DepsRootDocs)" DestinationFiles="@(DepsRootDocs->'$(HexChatRel)\share\doc\%(RecursiveDir)%(Filename)%(Extension)')" />
|
<Copy SourceFiles="@(DepsRootDocs)" DestinationFiles="@(DepsRootDocs->'$(HexChatRel)\share\doc\%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||||
<Copy SourceFiles="..\..\COPYING" DestinationFolder="$(HexChatRel)\share\doc\hexchat" />
|
<Copy SourceFiles="..\..\COPYING" DestinationFolder="$(HexChatRel)\share\doc\hexchat" />
|
||||||
@@ -86,9 +77,6 @@
|
|||||||
<Copy SourceFiles="$(DepsRoot)\lib\enchant\libenchant_myspell.dll" DestinationFolder="$(HexChatRel)\lib\enchant" />
|
<Copy SourceFiles="$(DepsRoot)\lib\enchant\libenchant_myspell.dll" DestinationFolder="$(HexChatRel)\lib\enchant" />
|
||||||
<Copy SourceFiles="@(Locale)" DestinationFiles="@(Locale->'$(HexChatRel)\share\locale\%(RecursiveDir)%(Filename)%(Extension)')" />
|
<Copy SourceFiles="@(Locale)" DestinationFiles="@(Locale->'$(HexChatRel)\share\locale\%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||||
<Copy SourceFiles="@(MSWindowsTheme)" DestinationFiles="@(MSWindowsTheme->'$(HexChatRel)\share\themes\MS-Windows\%(RecursiveDir)%(Filename)%(Extension)')" />
|
<Copy SourceFiles="@(MSWindowsTheme)" DestinationFiles="@(MSWindowsTheme->'$(HexChatRel)\share\themes\MS-Windows\%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||||
<Copy SourceFiles="@(LuaShare)" DestinationFiles="@(LuaShare->'$(HexChatRel)\share\lua\%(RecursiveDir)%(Filename)%(Extension)')" />
|
|
||||||
<Copy SourceFiles="@(LuaLib)" DestinationFiles="@(LuaLib->'$(HexChatRel)\lib\lua\%(RecursiveDir)%(Filename)%(Extension)')" />
|
|
||||||
<Copy SourceFiles="@(Typelib)" DestinationFiles="@(Typelib->'$(HexChatRel)\lib\girepository-1.0\%(Filename)%(Extension)')" />
|
|
||||||
|
|
||||||
<WriteLinesToFile File="$(HexChatRel)portable-mode" Lines="2" Overwrite="true" />
|
<WriteLinesToFile File="$(HexChatRel)portable-mode" Lines="2" Overwrite="true" />
|
||||||
</Target>
|
</Target>
|
||||||
|
|||||||
+2
-5
@@ -9,7 +9,7 @@
|
|||||||
<YourMsgfmtPath>c:\gtk-build\msgfmt</YourMsgfmtPath>
|
<YourMsgfmtPath>c:\gtk-build\msgfmt</YourMsgfmtPath>
|
||||||
<YourPerlPath>c:\gtk-build\perl-5.20</YourPerlPath>
|
<YourPerlPath>c:\gtk-build\perl-5.20</YourPerlPath>
|
||||||
<YourPython2Path>c:\gtk-build\python-2.7</YourPython2Path>
|
<YourPython2Path>c:\gtk-build\python-2.7</YourPython2Path>
|
||||||
<YourPython3Path>c:\gtk-build\python-3.5</YourPython3Path>
|
<YourPython3Path>c:\gtk-build\python-3.4</YourPython3Path>
|
||||||
<YourWinSparklePath>c:\gtk-build\WinSparkle</YourWinSparklePath>
|
<YourWinSparklePath>c:\gtk-build\WinSparkle</YourWinSparklePath>
|
||||||
|
|
||||||
<!-- YOU SHOULDN'T TOUCH ANYTHING BELOW -->
|
<!-- YOU SHOULDN'T TOUCH ANYTHING BELOW -->
|
||||||
@@ -27,11 +27,8 @@
|
|||||||
<Python2Lib>python27</Python2Lib>
|
<Python2Lib>python27</Python2Lib>
|
||||||
<Python2Output>hcpython2</Python2Output>
|
<Python2Output>hcpython2</Python2Output>
|
||||||
<Python3Path>$(YourPython3Path)\$(PlatformName)</Python3Path>
|
<Python3Path>$(YourPython3Path)\$(PlatformName)</Python3Path>
|
||||||
<Python3Lib>python35</Python3Lib>
|
<Python3Lib>python34</Python3Lib>
|
||||||
<Python3Output>hcpython3</Python3Output>
|
<Python3Output>hcpython3</Python3Output>
|
||||||
<LuaInclude>$(DepsRoot)\include\luajit-2.0</LuaInclude>
|
|
||||||
<LuaOutput>hclua</LuaOutput>
|
|
||||||
<LuaLib>lua51</LuaLib>
|
|
||||||
<Glib>$(DepsRoot)\include\glib-2.0;$(DepsRoot)\lib\glib-2.0\include;$(DepsRoot)\include\libxml2</Glib>
|
<Glib>$(DepsRoot)\include\glib-2.0;$(DepsRoot)\lib\glib-2.0\include;$(DepsRoot)\include\libxml2</Glib>
|
||||||
<Gtk>$(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</Gtk>
|
<Gtk>$(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</Gtk>
|
||||||
<DepLibs>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;libintl.lib;libxml2.lib;libeay32.lib;ssleay32.lib;wininet.lib;winmm.lib;ws2_32.lib</DepLibs>
|
<DepLibs>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;libintl.lib;libxml2.lib;libeay32.lib;ssleay32.lib;wininet.lib;winmm.lib;ws2_32.lib</DepLibs>
|
||||||
|
|||||||
+2
-10
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 14
|
# Visual Studio 2013
|
||||||
VisualStudioVersion = 14.0.25123.0
|
VisualStudioVersion = 12.0.30501.0
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "..\src\common\common.vcxproj", "{87554B59-006C-4D94-9714-897B27067BA3}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "..\src\common\common.vcxproj", "{87554B59-006C-4D94-9714-897B27067BA3}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
@@ -89,7 +89,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "installer", "installer\inst
|
|||||||
{BF0EBC16-68AD-4CD1-864C-5B56836EBE2A} = {BF0EBC16-68AD-4CD1-864C-5B56836EBE2A}
|
{BF0EBC16-68AD-4CD1-864C-5B56836EBE2A} = {BF0EBC16-68AD-4CD1-864C-5B56836EBE2A}
|
||||||
{4980AF24-9D42-427D-A8E6-0DF3B97C455D} = {4980AF24-9D42-427D-A8E6-0DF3B97C455D}
|
{4980AF24-9D42-427D-A8E6-0DF3B97C455D} = {4980AF24-9D42-427D-A8E6-0DF3B97C455D}
|
||||||
{17E4BE39-76F7-4A06-AD21-EFD0C5091F76} = {17E4BE39-76F7-4A06-AD21-EFD0C5091F76}
|
{17E4BE39-76F7-4A06-AD21-EFD0C5091F76} = {17E4BE39-76F7-4A06-AD21-EFD0C5091F76}
|
||||||
{4C0F3940-2EEE-4646-82F7-6CE75B9A72F4} = {4C0F3940-2EEE-4646-82F7-6CE75B9A72F4}
|
|
||||||
{B10A2C41-344C-43E0-A32D-B9587C198D8B} = {B10A2C41-344C-43E0-A32D-B9587C198D8B}
|
{B10A2C41-344C-43E0-A32D-B9587C198D8B} = {B10A2C41-344C-43E0-A32D-B9587C198D8B}
|
||||||
{461DC24A-A410-4171-8C02-CCDBF3702C2A} = {461DC24A-A410-4171-8C02-CCDBF3702C2A}
|
{461DC24A-A410-4171-8C02-CCDBF3702C2A} = {461DC24A-A410-4171-8C02-CCDBF3702C2A}
|
||||||
{E93E1255-95D1-4B08-8FDF-B53CC6A21280} = {E93E1255-95D1-4B08-8FDF-B53CC6A21280}
|
{E93E1255-95D1-4B08-8FDF-B53CC6A21280} = {E93E1255-95D1-4B08-8FDF-B53CC6A21280}
|
||||||
@@ -132,8 +131,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libenchant_win8", "..\src\l
|
|||||||
{87554B59-006C-4D94-9714-897B27067BA3} = {87554B59-006C-4D94-9714-897B27067BA3}
|
{87554B59-006C-4D94-9714-897B27067BA3} = {87554B59-006C-4D94-9714-897B27067BA3}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua", "..\plugins\lua\lua.vcxproj", "{4C0F3940-2EEE-4646-82F7-6CE75B9A72F4}"
|
|
||||||
EndProject
|
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Release|Win32 = Release|Win32
|
Release|Win32 = Release|Win32
|
||||||
@@ -224,10 +221,6 @@ Global
|
|||||||
{BF0EBC16-68AD-4CD1-864C-5B56836EBE2A}.Release|Win32.Build.0 = Release|Win32
|
{BF0EBC16-68AD-4CD1-864C-5B56836EBE2A}.Release|Win32.Build.0 = Release|Win32
|
||||||
{BF0EBC16-68AD-4CD1-864C-5B56836EBE2A}.Release|x64.ActiveCfg = Release|x64
|
{BF0EBC16-68AD-4CD1-864C-5B56836EBE2A}.Release|x64.ActiveCfg = Release|x64
|
||||||
{BF0EBC16-68AD-4CD1-864C-5B56836EBE2A}.Release|x64.Build.0 = Release|x64
|
{BF0EBC16-68AD-4CD1-864C-5B56836EBE2A}.Release|x64.Build.0 = Release|x64
|
||||||
{4C0F3940-2EEE-4646-82F7-6CE75B9A72F4}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{4C0F3940-2EEE-4646-82F7-6CE75B9A72F4}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{4C0F3940-2EEE-4646-82F7-6CE75B9A72F4}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{4C0F3940-2EEE-4646-82F7-6CE75B9A72F4}.Release|x64.Build.0 = Release|x64
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
@@ -254,6 +247,5 @@ Global
|
|||||||
{C2321A03-0BA7-45B3-8740-ABD82B36B0BF} = {D237DA6B-BD5F-46C0-8BEA-50E9A1340240}
|
{C2321A03-0BA7-45B3-8740-ABD82B36B0BF} = {D237DA6B-BD5F-46C0-8BEA-50E9A1340240}
|
||||||
{C53145CC-D021-40C9-B97C-0249AB9A43C9} = {561126F4-FA18-45FC-A2BF-8F858F161D6D}
|
{C53145CC-D021-40C9-B97C-0249AB9A43C9} = {561126F4-FA18-45FC-A2BF-8F858F161D6D}
|
||||||
{BF0EBC16-68AD-4CD1-864C-5B56836EBE2A} = {021EC1D0-FF67-4700-9AB2-EAABF1159C09}
|
{BF0EBC16-68AD-4CD1-864C-5B56836EBE2A} = {021EC1D0-FF67-4700-9AB2-EAABF1159C09}
|
||||||
{4C0F3940-2EEE-4646-82F7-6CE75B9A72F4} = {D237DA6B-BD5F-46C0-8BEA-50E9A1340240}
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ Name: "translations"; Description: "Translations"; Types: normal custom; Flags:
|
|||||||
Name: "spell"; Description: "Spelling Dictionaries"; Types: custom; Flags: disablenouninstallwarning
|
Name: "spell"; Description: "Spelling Dictionaries"; Types: custom; Flags: disablenouninstallwarning
|
||||||
Name: "plugins"; Description: "Plugins"; Types: custom; Flags: disablenouninstallwarning
|
Name: "plugins"; Description: "Plugins"; Types: custom; Flags: disablenouninstallwarning
|
||||||
Name: "plugins\checksum"; Description: "Checksum"; Types: custom; Flags: disablenouninstallwarning
|
Name: "plugins\checksum"; Description: "Checksum"; Types: custom; Flags: disablenouninstallwarning
|
||||||
Name: "plugins\doat"; Description: "Do At"; Types: normal custom; Flags: disablenouninstallwarning
|
Name: "plugins\doat"; Description: "Do At"; Types: custom; Flags: disablenouninstallwarning
|
||||||
Name: "plugins\exec"; Description: "Exec"; Types: custom; Flags: disablenouninstallwarning
|
Name: "plugins\exec"; Description: "Exec"; Types: custom; Flags: disablenouninstallwarning
|
||||||
Name: "plugins\fishlim"; Description: "FiSHLiM"; Types: custom; Flags: disablenouninstallwarning
|
Name: "plugins\fishlim"; Description: "FiSHLiM"; Types: custom; Flags: disablenouninstallwarning
|
||||||
Name: "plugins\mpcinfo"; Description: "mpcInfo"; Types: custom; Flags: disablenouninstallwarning
|
Name: "plugins\mpcinfo"; Description: "mpcInfo"; Types: custom; Flags: disablenouninstallwarning
|
||||||
@@ -72,11 +72,10 @@ Name: "plugins\sysinfo"; Description: "SysInfo"; Types: custom; Flags: disableno
|
|||||||
Name: "plugins\upd"; Description: "Update Checker"; Types: normal custom; Flags: disablenouninstallwarning
|
Name: "plugins\upd"; Description: "Update Checker"; Types: normal custom; Flags: disablenouninstallwarning
|
||||||
Name: "plugins\winamp"; Description: "Winamp"; Types: custom; Flags: disablenouninstallwarning
|
Name: "plugins\winamp"; Description: "Winamp"; Types: custom; Flags: disablenouninstallwarning
|
||||||
Name: "langs"; Description: "Language Interfaces"; Types: custom; Flags: disablenouninstallwarning
|
Name: "langs"; Description: "Language Interfaces"; Types: custom; Flags: disablenouninstallwarning
|
||||||
Name: "langs\lua"; Description: "Lua"; Types: normal custom; Flags: disablenouninstallwarning
|
|
||||||
Name: "langs\perl"; Description: "Perl (requires Perl 5.20)"; Types: custom; Flags: disablenouninstallwarning
|
Name: "langs\perl"; Description: "Perl (requires Perl 5.20)"; Types: custom; Flags: disablenouninstallwarning
|
||||||
Name: "langs\python"; Description: "Python Interface"; Types: custom; Flags: disablenouninstallwarning
|
Name: "langs\python"; Description: "Python Interface"; Types: custom; Flags: disablenouninstallwarning
|
||||||
Name: "langs\python\python2"; Description: "Python (requires Python 2.7)"; Types: custom; Flags: disablenouninstallwarning exclusive
|
Name: "langs\python\python2"; Description: "Python (requires Python 2.7)"; Types: custom; Flags: disablenouninstallwarning exclusive
|
||||||
Name: "langs\python\python3"; Description: "Python (requires Python 3.5)"; Types: custom; Flags: disablenouninstallwarning exclusive
|
Name: "langs\python\python3"; Description: "Python (requires Python 3.4)"; Types: custom; Flags: disablenouninstallwarning exclusive
|
||||||
|
|
||||||
[Tasks]
|
[Tasks]
|
||||||
Name: portable; Description: "Yes"; GroupDescription: "Portable Mode: Stores configuration files within install directory for portable drives."; Flags: unchecked
|
Name: portable; Description: "Yes"; GroupDescription: "Portable Mode: Stores configuration files within install directory for portable drives."; Flags: unchecked
|
||||||
@@ -103,7 +102,6 @@ Filename: "{tmp}\vcredist.exe"; Parameters: "/install /quiet /norestart"; Status
|
|||||||
Filename: "{tmp}\dotnet4.exe"; Parameters: "/q /norestart"; StatusMsg: "Installing .NET"; Components: xtm; Flags: skipifdoesntexist; Tasks: not portable
|
Filename: "{tmp}\dotnet4.exe"; Parameters: "/q /norestart"; StatusMsg: "Installing .NET"; Components: xtm; Flags: skipifdoesntexist; Tasks: not portable
|
||||||
Filename: "{tmp}\perl.msi"; StatusMsg: "Installing Perl"; Components: langs\perl; Flags: shellexec skipifdoesntexist; Tasks: not portable
|
Filename: "{tmp}\perl.msi"; StatusMsg: "Installing Perl"; Components: langs\perl; Flags: shellexec skipifdoesntexist; Tasks: not portable
|
||||||
Filename: "{tmp}\python.msi"; StatusMsg: "Installing Python"; Components: langs\python; Flags: shellexec skipifdoesntexist; Tasks: not portable
|
Filename: "{tmp}\python.msi"; StatusMsg: "Installing Python"; Components: langs\python; Flags: shellexec skipifdoesntexist; Tasks: not portable
|
||||||
Filename: "{tmp}\python.exe"; Parameters: "InstallAllUsers=1 PrependPath=1"; StatusMsg: "Installing Python"; Components: langs\python; Flags: shellexec skipifdoesntexist; Tasks: not portable
|
|
||||||
Filename: "{tmp}\spelling-dicts.exe"; Parameters: "/verysilent"; StatusMsg: "Installing Spelling Dictionaries"; Components: spell; Flags: skipifdoesntexist; Tasks: not portable
|
Filename: "{tmp}\spelling-dicts.exe"; Parameters: "/verysilent"; StatusMsg: "Installing Spelling Dictionaries"; Components: spell; Flags: skipifdoesntexist; Tasks: not portable
|
||||||
|
|
||||||
[Files]
|
[Files]
|
||||||
@@ -139,7 +137,6 @@ Source: "harfbuzz.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
|
|||||||
Source: "iconv.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
|
Source: "iconv.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
|
||||||
Source: "libeay32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
|
Source: "libeay32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
|
||||||
Source: "libenchant.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
|
Source: "libenchant.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
|
||||||
Source: "libffi.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
|
|
||||||
Source: "libintl.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
|
Source: "libintl.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
|
||||||
Source: "libpng16.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
|
Source: "libpng16.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
|
||||||
Source: "libxml2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
|
Source: "libxml2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
|
||||||
@@ -155,15 +152,7 @@ Source: "plugins\hcnotifications-winrt.dll"; DestDir: "{app}\plugins"; Flags: ig
|
|||||||
|
|
||||||
Source: "lib\enchant\*"; DestDir: "{app}\lib\enchant"; Flags: ignoreversion; Components: libs
|
Source: "lib\enchant\*"; DestDir: "{app}\lib\enchant"; Flags: ignoreversion; Components: libs
|
||||||
|
|
||||||
Source: "lib\gtk-2.0\i686-pc-vs14\engines\*"; DestDir: "{app}\lib\gtk-2.0\i686-pc-vs14\engines"; Flags: ignoreversion; Components: libs
|
Source: "lib\gtk-2.0\i686-pc-vs10\engines\*"; DestDir: "{app}\lib\gtk-2.0\i686-pc-vs10\engines"; Flags: ignoreversion; Components: libs
|
||||||
|
|
||||||
Source: "girepository-1.0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: langs\lua
|
|
||||||
Source: "lua51.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: langs\lua
|
|
||||||
Source: "lib\lua\lgi\*.dll"; DestDir: "{app}\lib\lua\lgi"; Flags: ignoreversion; Components: langs\lua
|
|
||||||
Source: "lib\girepository-1.0\*.typelib"; DestDir: "{app}\lib\girepository-1.0"; Flags: ignoreversion; Components: langs\lua
|
|
||||||
Source: "share\lua\*.lua"; DestDir: "{app}\share\lua"; Flags: ignoreversion; Components: langs\lua
|
|
||||||
Source: "share\lua\lgi\*.lua"; DestDir: "{app}\share\lua\lgi"; Flags: ignoreversion; Components: langs\lua
|
|
||||||
Source: "share\lua\lgi\override\*.lua"; DestDir: "{app}\share\lua\lgi\override"; Flags: ignoreversion; Components: langs\lua
|
|
||||||
|
|
||||||
Source: "plugins\hcchecksum.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\checksum
|
Source: "plugins\hcchecksum.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\checksum
|
||||||
Source: "plugins\hcdoat.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\doat
|
Source: "plugins\hcdoat.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\doat
|
||||||
@@ -181,7 +170,6 @@ Source: "plugins\hcsysinfo.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion;
|
|||||||
Source: "plugins\hcpython2.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\python\python2
|
Source: "plugins\hcpython2.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\python\python2
|
||||||
Source: "plugins\hcpython3.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\python\python3
|
Source: "plugins\hcpython3.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\python\python3
|
||||||
Source: "plugins\hcperl.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\perl
|
Source: "plugins\hcperl.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\perl
|
||||||
Source: "plugins\hclua.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\lua
|
|
||||||
|
|
||||||
Source: "hexchat.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
|
Source: "hexchat.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
|
||||||
Source: "hexchat-text.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: xctext
|
Source: "hexchat-text.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: xctext
|
||||||
@@ -282,13 +270,13 @@ begin
|
|||||||
#if APPARCH == "x64"
|
#if APPARCH == "x64"
|
||||||
REDIST := 'https://dl.hexchat.net/misc/vcredist_2015_x64.exe';
|
REDIST := 'https://dl.hexchat.net/misc/vcredist_2015_x64.exe';
|
||||||
PERL := 'https://dl.hexchat.net/misc/perl/Perl%205.20.0%20x64.msi';
|
PERL := 'https://dl.hexchat.net/misc/perl/Perl%205.20.0%20x64.msi';
|
||||||
PY2 := 'https://python.org/ftp/python/2.7.10/python-2.7.10.amd64.msi';
|
PY2 := 'http://python.org/ftp/python/2.7.8/python-2.7.8.amd64.msi';
|
||||||
PY3 := 'https://python.org/ftp/python/3.5.1/python-3.5.1-amd64.exe';
|
PY3 := 'http://python.org/ftp/python/3.4.1/python-3.4.1.amd64.msi';
|
||||||
#else
|
#else
|
||||||
REDIST := 'https://dl.hexchat.net/misc/vcredist_2015_x86.exe';
|
REDIST := 'https://dl.hexchat.net/misc/vcredist_2015_x86.exe';
|
||||||
PERL := 'https://dl.hexchat.net/misc/perl/Perl%205.20.0%20x86.msi';
|
PERL := 'https://dl.hexchat.net/misc/perl/Perl%205.20.0%20x86.msi';
|
||||||
PY2 := 'https://python.org/ftp/python/2.7.10/python-2.7.10.msi';
|
PY2 := 'http://python.org/ftp/python/2.7.8/python-2.7.8.msi';
|
||||||
PY3 := 'https://python.org/ftp/python/3.5.1/python-3.5.1.exe';
|
PY3 := 'http://python.org/ftp/python/3.4.1/python-3.4.1.msi';
|
||||||
#endif
|
#endif
|
||||||
DOTNET := 'https://dl.hexchat.net/misc/dotnet_40.exe';
|
DOTNET := 'https://dl.hexchat.net/misc/dotnet_40.exe';
|
||||||
SPELL := 'https://dl.hexchat.net/hexchat/HexChat%20Spelling%20Dictionaries%20r2.exe';
|
SPELL := 'https://dl.hexchat.net/hexchat/HexChat%20Spelling%20Dictionaries%20r2.exe';
|
||||||
@@ -310,8 +298,8 @@ begin
|
|||||||
if IsComponentSelected('langs\python\python2') and not CheckDLL('python27.dll') then
|
if IsComponentSelected('langs\python\python2') and not CheckDLL('python27.dll') then
|
||||||
idpAddFile(PY2, ExpandConstant('{tmp}\python.msi'));
|
idpAddFile(PY2, ExpandConstant('{tmp}\python.msi'));
|
||||||
|
|
||||||
if IsComponentSelected('langs\python\python3') and not CheckDLL('python35.dll') then
|
if IsComponentSelected('langs\python\python3') and not CheckDLL('python34.dll') then
|
||||||
idpAddFile(PY3, ExpandConstant('{tmp}\python.exe'));
|
idpAddFile(PY3, ExpandConstant('{tmp}\python.msi'));
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
2.12.0
|
2.10.2
|
||||||
Reference in New Issue
Block a user