Showing with 11,945 additions and 19,688 deletions.
  1. +17 −0 .github/workflows/flatpak-build.yml
  2. +40 −0 .github/workflows/msys-build.yml
  3. +25 −0 .github/workflows/ubuntu-build.yml
  4. +72 −0 .github/workflows/windows-build.yml
  5. +3 −0 .gitmodules
  6. +5 −0 .lgtm.yml
  7. +0 −20 .travis.yml
  8. +3 −3 data/meson.build
  9. +32 −0 data/misc/io.github.Hexchat.appdata.xml.in
  10. +6 −6 data/misc/meson.build
  11. +2 −2 data/pkgconfig/meson.build
  12. +25 −0 flatpak/Load-plugins-from-Flatpak-extensions.patch
  13. +79 −0 flatpak/io.github.Hexchat.json
  14. +19 −0 flatpak/python3-cffi.json
  15. +1 −0 flatpak/shared-modules
  16. +55 −15 meson.build
  17. +18 −19 meson_options.txt
  18. +1 −1 plugins/checksum/checksum.vcxproj
  19. +1 −1 plugins/exec/exec.vcxproj
  20. +411 −102 plugins/fishlim/fish.c
  21. +14 −4 plugins/fishlim/fish.h
  22. +5 −3 plugins/fishlim/fishlim.vcxproj
  23. +12 −0 plugins/fishlim/fishlim.vcxproj.filters
  24. +46 −15 plugins/fishlim/keystore.c
  25. +3 −2 plugins/fishlim/keystore.h
  26. +4 −0 plugins/fishlim/meson.build
  27. +413 −155 plugins/fishlim/plugin_hexchat.c
  28. +15 −0 plugins/fishlim/tests/meson.build
  29. +51 −0 plugins/fishlim/tests/mock-keystore.c
  30. +286 −0 plugins/fishlim/tests/tests.c
  31. +149 −0 plugins/fishlim/utils.c
  32. +39 −0 plugins/fishlim/utils.h
  33. +9 −7 plugins/lua/lua.c
  34. +1 −1 plugins/lua/lua.vcxproj
  35. +3 −1 plugins/perl/perl.c
  36. +1 −1 plugins/perl/perl.vcxproj
  37. +386 −0 plugins/python/_hexchat.py
  38. +89 −0 plugins/python/generate_plugin.py
  39. +1 −0 plugins/python/hexchat.py
  40. +21 −3 plugins/python/meson.build
  41. +0 −2,834 plugins/python/python.c
  42. +0 −1 plugins/python/python.def
  43. +554 −0 plugins/python/python.py
  44. +8 −2 plugins/python/python2.vcxproj
  45. +14 −3 plugins/python/python3.vcxproj
  46. +16 −3 plugins/python/python3.vcxproj.filters
  47. +26 −0 plugins/python/python_style_guide.md
  48. +1 −0 plugins/python/xchat.py
  49. +2 −2 plugins/sysinfo/meson.build
  50. +1 −1 plugins/sysinfo/shared/df.c
  51. +1 −1 plugins/sysinfo/sysinfo.vcxproj
  52. +24 −0 plugins/sysinfo/unix/parse.c
  53. +2 −2 plugins/sysinfo/unix/pci.c
  54. +1 −1 plugins/upd/upd.vcxproj
  55. +1 −1 plugins/winamp/winamp.vcxproj
  56. +64 −60 po/af.po
  57. +63 −57 po/am.po
  58. +120 −259 po/ast.po
  59. +71 −87 po/az.po
  60. +111 −238 po/be.po
  61. +85 −130 po/bg.po
  62. +163 −365 po/ca.po
  63. +367 −490 po/cs.po
  64. +184 −480 po/da.po
  65. +289 −601 po/de.po
  66. +130 −290 po/el.po
  67. +161 −417 po/en_GB.po
  68. +637 −935 po/es.po
  69. +106 −221 po/et.po
  70. +83 −122 po/eu.po
  71. +117 −250 po/fi.po
  72. +206 −573 po/fr.po
  73. +115 −243 po/gl.po
  74. +95 −167 po/gu.po
  75. +100 −170 po/hi.po
  76. +149 −361 po/hu.po
  77. +147 −354 po/id.po
  78. +203 −556 po/it.po
  79. +135 −273 po/ja_JP.po
  80. +122 −264 po/kn.po
  81. +208 −475 po/ko.po
  82. +152 −338 po/lt.po
  83. +95 −159 po/lv.po
  84. +109 −231 po/mk.po
  85. +65 −60 po/ml.po
  86. +66 −73 po/ms.po
  87. +175 −465 po/nb.po
  88. +116 −241 po/nl.po
  89. +63 −63 po/no.po
  90. +73 −95 po/pa.po
  91. +173 −450 po/pl.po
  92. +323 −589 po/pt.po
  93. +283 −590 po/pt_BR.po
  94. +143 −327 po/ru.po
  95. +63 −57 po/rw.po
  96. +103 −185 po/sk.po
  97. +109 −210 po/sl.po
  98. +177 −485 po/sq.po
  99. +111 −232 po/sr.po
  100. +105 −192 po/sr@latin.po
  101. +228 −511 po/sv.po
  102. +103 −213 po/th.po
  103. +185 −472 po/tr.po
  104. +118 −253 po/uk.po
  105. +137 −353 po/vi.po
  106. +64 −66 po/wa.po
  107. +214 −396 po/zh_CN.po
  108. +92 −154 po/zh_TW.po
  109. +1 −1 readme.md
  110. +2 −0 src/common/chanopt.c
  111. +1 −1 src/common/common.vcxproj
  112. +1 −4 src/common/ctcp.c
  113. +1 −1 src/common/dbus/meson.build
  114. +5 −5 src/common/dcc.c
  115. +1 −1 src/common/dcc.h
  116. +1 −16 src/common/hexchat.c
  117. +12 −6 src/common/hexchat.h
  118. +34 −14 src/common/inbound.c
  119. +1 −1 src/common/inbound.h
  120. +5 −15 src/common/meson.build
  121. +104 −33 src/common/modes.c
  122. +28 −11 src/common/outbound.c
  123. +73 −46 src/common/plugin.c
  124. +104 −62 src/common/proto-irc.c
  125. +8 −0 src/common/proto-irc.h
  126. +63 −27 src/common/server.c
  127. +76 −102 src/common/servlist.c
  128. +10 −11 src/common/ssl.c
  129. +1 −1 src/common/ssl.h
  130. +18 −0 src/common/text.c
  131. +42 −0 src/common/textevents.in
  132. +2 −0 src/common/url.c
  133. +11 −6 src/common/userlist.c
  134. +1 −0 src/common/util.c
  135. +6 −3 src/fe-gtk/fe-gtk.c
  136. +1 −1 src/fe-gtk/fe-gtk.vcxproj
  137. +1 −1 src/fe-gtk/joind.c
  138. +30 −5 src/fe-gtk/maingui.c
  139. +19 −1 src/fe-gtk/menu.c
  140. +10 −13 src/fe-gtk/meson.build
  141. +147 −0 src/fe-gtk/notifications/notification-freedesktop.c
  142. +0 −81 src/fe-gtk/notifications/notification-libnotify.c
  143. +64 −62 src/fe-gtk/notifications/notifications-winrt.vcxproj
  144. +21 −1 src/fe-gtk/pixmaps.c
  145. +36 −4 src/fe-gtk/plugin-notification.c
  146. +10 −4 src/fe-gtk/servlistgui.c
  147. +0 −2 src/fe-gtk/setup.c
  148. +20 −0 src/fe-gtk/sexy-spell-entry.c
  149. +33 −2 src/fe-gtk/xtext.c
  150. +12 −10 src/fe-gtk/xtext.h
  151. +1 −1 src/fe-text/fe-text.c
  152. +1 −1 src/fe-text/fe-text.vcxproj
  153. +1 −1 src/htm/Properties/Resources.Designer.cs
  154. +1 −1 src/htm/Properties/Settings.Designer.cs
  155. +1 −1 src/htm/app.config
  156. +1 −1 src/htm/htm.csproj
  157. +1 −1 src/libenchant_win8/libenchant_win8.vcxproj
  158. +3 −3 src/meson.build
  159. +8 −3 win32/copy/copy.vcxproj
  160. +3 −3 win32/hexchat.props
  161. +16 −6 win32/installer/hexchat.iss.tt
  162. +1 −1 win32/installer/installer.vcxproj
  163. +1 −1 win32/nls/nls.vcxproj
17 changes: 17 additions & 0 deletions .github/workflows/flatpak-build.yml
@@ -0,0 +1,17 @@
name: Flatpak Build
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
container:
image: bilelmoussaoui/flatpak-github-actions:gnome-40
options: --privileged
steps:
- uses: actions/checkout@v2
with:
submodules: true

- uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@v3
with:
bundle: hexchat.flatpak
manifest-path: flatpak/io.github.Hexchat.json
40 changes: 40 additions & 0 deletions .github/workflows/msys-build.yml
@@ -0,0 +1,40 @@
name: MSYS2 Build
on: [push, pull_request]

jobs:
build:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}

steps:
- uses: actions/checkout@v2

- uses: msys2/setup-msys2@v2
with:
install: >-
mingw-w64-x86_64-gcc
mingw-w64-x86_64-pkg-config
mingw-w64-x86_64-python3-cffi
mingw-w64-x86_64-meson
mingw-w64-x86_64-gtk2
mingw-w64-x86_64-luajit
mingw-w64-x86_64-desktop-file-utils
- name: Configure
run: >-
meson build
-Dtext-frontend=true
-Ddbus=disabled
-Dwith-upd=false
-Dwith-perl=false
- name: Build
run: ninja -C build

- name: Test
run: ninja -C build test

- name: Install
run: ninja -C build install
25 changes: 25 additions & 0 deletions .github/workflows/ubuntu-build.yml
@@ -0,0 +1,25 @@
name: Ubuntu Build
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2

- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y meson libcanberra-dev libdbus-glib-1-dev libglib2.0-dev libgtk2.0-dev libluajit-5.1-dev libpci-dev libperl-dev libproxy-dev libssl-dev python3-dev python3-cffi mono-devel desktop-file-utils
- name: Configure
run: meson build -Dtext=true -Dtheme-manager=true -Dauto_features=enabled

- name: Build
run: ninja -C build

- name: Test
run: ninja -C build test

- name: Install
run: sudo ninja -C build install
72 changes: 72 additions & 0 deletions .github/workflows/windows-build.yml
@@ -0,0 +1,72 @@
name: Windows Build
on: [push, pull_request]

jobs:
build:
runs-on: windows-2019
strategy:
matrix:
platform: [x64, win32]
arch: [x64, x86]
exclude:
- platform: x64
arch: x86
- platform: win32
arch: x64
fail-fast: false

steps:
- uses: actions/checkout@v2

- name: Install Dependencies
run: |
New-Item -Name "deps" -ItemType "Directory"
Invoke-WebRequest http://files.jrsoftware.org/is/5/innosetup-5.5.9-unicode.exe -OutFile deps\innosetup-unicode.exe
& deps\innosetup-unicode.exe /VERYSILENT | Out-Null
Invoke-WebRequest https://dl.hexchat.net/misc/idpsetup-1.5.1.exe -OutFile deps\idpsetup.exe
& deps\idpsetup.exe /VERYSILENT
Invoke-WebRequest https://dl.hexchat.net/gtk/gtk-${{ matrix.platform }}-2018-08-29-openssl1.1.7z -OutFile deps\gtk-${{ matrix.arch }}.7z
& 7z.exe x deps\gtk-${{ matrix.arch }}.7z -oC:\gtk-build\gtk
Invoke-WebRequest https://dl.hexchat.net/gtk-win32/gendef-20111031.7z -OutFile deps\gendef.7z
& 7z.exe x deps\gendef.7z -oC:\gtk-build
Invoke-WebRequest https://dl.hexchat.net/gtk-win32/WinSparkle-20151011.7z -OutFile deps\WinSparkle.7z
& 7z.exe x deps\WinSparkle.7z -oC:\gtk-build\WinSparkle
Invoke-WebRequest https://dl.hexchat.net/misc/perl/perl-5.20.0-${{ matrix.arch }}.7z -OutFile deps\perl-${{ matrix.arch }}.7z
& 7z.exe x deps\perl-${{ matrix.arch }}.7z -oC:\gtk-build\perl-5.20\${{ matrix.platform }}
New-Item -Path "c:\gtk-build" -Name "python-2.7" -ItemType "Directory"
New-Item -Path "c:\gtk-build" -Name "python-3.6" -ItemType "Directory"
New-Item -Path "c:\gtk-build\python-2.7" -Name "${{ matrix.platform }}" -ItemType "SymbolicLink" -Value "C:/hostedtoolcache/windows/Python/2.7.18/${{ matrix.arch }}"
New-Item -Path "c:\gtk-build\python-3.6" -Name "${{ matrix.platform }}" -ItemType "SymbolicLink" -Value "C:/hostedtoolcache/windows/Python/3.6.8/${{ matrix.arch }}"
C:/hostedtoolcache/windows/Python/3.6.8/${{ matrix.arch }}/python.exe -m pip install cffi
C:/hostedtoolcache/windows/Python/2.7.18/${{ matrix.arch }}/python.exe -m pip install -qq cffi
shell: powershell

- name: Build
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
msbuild win32\hexchat.sln /m /verbosity:minimal /p:Configuration=Release /p:Platform=${{ matrix.platform }}
shell: cmd

- name: Preparing Artifacts
run: |
move ..\hexchat-build\${{ matrix.platform }}\HexChat*.exe .\
move ..\hexchat-build .\
shell: cmd

- uses: actions/upload-artifact@v2
with:
name: Installer ${{ matrix.arch }}
path: HexChat*.exe

- uses: actions/upload-artifact@v2
with:
name: Build Files ${{ matrix.arch }}
path: hexchat-build
3 changes: 3 additions & 0 deletions .gitmodules
@@ -0,0 +1,3 @@
[submodule "flatpak/shared-modules"]
path = flatpak/shared-modules
url = https://github.com/flathub/shared-modules.git
5 changes: 5 additions & 0 deletions .lgtm.yml
@@ -0,0 +1,5 @@
extraction:
cpp:
prepare:
packages:
- python3-cffi
20 changes: 0 additions & 20 deletions .travis.yml

This file was deleted.

6 changes: 3 additions & 3 deletions data/meson.build
@@ -1,11 +1,11 @@
if get_option('with-plugin')
if get_option('plugin')
subdir('pkgconfig')
endif

if get_option('with-gtk')
if get_option('gtk-frontend')
subdir('icons')
subdir('misc')
subdir('man')
elif get_option('with-theme-manager')
elif get_option('theme-manager')
subdir('misc')
endif
32 changes: 32 additions & 0 deletions data/misc/io.github.Hexchat.appdata.xml.in
Expand Up @@ -26,6 +26,35 @@
<id>hexchat.desktop</id>
</provides>
<releases>
<release date="2021-10-01" version="2.16.0">
<description>
<p>This is a feature release:</p>
<ul>
<li>Add support for IRCv3 SETNAME, invite-notify, account-tag, standard replies, and UTF8ONLY</li>
<li>Add support for strikethrough formatting</li>
<li>Fix text clipping issues by respecting font line height</li>
<li>Fix URLs not being escaped when opened</li>
<li>Fix possible hang when showing notifications</li>
<li>Print ChanServ notices in the front tab by default</li>
<li>Update network list</li>
<li>python: Rewrite plugin improving memory usage and compatibility</li>
<li>fishlim: Add support for CBC and other improvements</li>
</ul>
</description>
</release>
<release date="2019-12-20" version="2.14.3">
<description>
<p>This is a bug-fix release:</p>
<ul>
<li>Fix various incorrect parsing of IRC messages relating to trailing parameters</li>
<li>Fix SASL negotiation combined with multi-line cap</li>
<li>Fix input box theming with Yaru theme</li>
<li>python: Work around Python 3.7 regression causing crash on unload</li>
<li>sysinfo: Add support for /etc/os-release</li>
<li>sysinfo: Ignore irrelevant mounts when calculating storage size</li>
</ul>
</description>
</release>
<release date="2018-08-29" version="2.14.2">
<description>
<p>This is a minor release:</p>
Expand Down Expand Up @@ -101,5 +130,8 @@
<kudo>HiDpiIcon</kudo>
<kudo>Notifications</kudo>
</kudos>
<content_rating type="oars-1.1">
<content_attribute id="social-chat">intense</content_attribute>
</content_rating>
<update_contact>tingping_at_fedoraproject.org</update_contact>
</component>
12 changes: 6 additions & 6 deletions data/misc/meson.build
Expand Up @@ -2,8 +2,8 @@ appdir = join_paths(get_option('datadir'), 'applications')
metainfodir = join_paths(get_option('datadir'), 'metainfo')
desktop_utils = find_program('desktop-file-validate', required: false)

if get_option('with-gtk')
if get_option('with-appdata')
if get_option('gtk-frontend')
if get_option('install-appdata')
hexchat_appdata = i18n.merge_file(
input: 'io.github.Hexchat.appdata.xml.in',
output: 'io.github.Hexchat.appdata.xml',
Expand All @@ -21,7 +21,7 @@ if get_option('with-gtk')
endif

desktop_conf = configuration_data()
if get_option('with-dbus')
if dbus_glib_dep.found()
desktop_conf.set('exec_command', 'hexchat --existing %U')
else
desktop_conf.set('exec_command', 'hexchat %U')
Expand Down Expand Up @@ -49,7 +49,7 @@ if get_option('with-gtk')
endif
endif

if get_option('with-theme-manager')
if get_option('theme-manager')
htm_desktop = i18n.merge_file(
input: 'io.github.Hexchat.ThemeManager.desktop.in',
output: 'io.github.Hexchat.ThemeManager.desktop',
Expand All @@ -70,7 +70,7 @@ if get_option('with-theme-manager')
)
endif

if get_option('with-plugin') and get_option('with-appdata')
if get_option('plugin')
plugin_metainfo = []

# FIXME: These should all get translated somewhere
Expand Down Expand Up @@ -124,4 +124,4 @@ if get_option('with-plugin') and get_option('with-appdata')
install_dir: get_option('install-plugin-metainfo') ? metainfodir : '',
)
endforeach
endif
endif
4 changes: 2 additions & 2 deletions data/pkgconfig/meson.build
Expand Up @@ -2,8 +2,8 @@ pkg_conf = configuration_data()
prefix = get_option('prefix')
pkg_conf.set('prefix', prefix)
pkg_conf.set('VERSION', meson.project_version())
pkg_conf.set('hexchatlibdir', join_paths(prefix, plugindir))
pkg_conf.set('includedir', join_paths(prefix, get_option('includedir')))
pkg_conf.set('hexchatlibdir', join_paths('${prefix}', plugindir))
pkg_conf.set('includedir', join_paths('${prefix}', get_option('includedir')))

configure_file(
input: 'hexchat-plugin.pc.in',
Expand Down
25 changes: 25 additions & 0 deletions flatpak/Load-plugins-from-Flatpak-extensions.patch
@@ -0,0 +1,25 @@
From 918503d57c6740d20be68a6717158673a2a8b25f Mon Sep 17 00:00:00 2001
From: Patrick Griffis <tingping@tingping.se>
Date: Sat, 17 Mar 2018 05:57:49 -0400
Subject: [PATCH] Support loading Flatpak extensions

---
src/common/plugin.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/src/common/plugin.c b/src/common/plugin.c
index 3ad3c558..6addf962 100644
--- a/src/common/plugin.c
+++ b/src/common/plugin.c
@@ -450,6 +450,8 @@ plugin_auto_load (session *sess)
lib_dir = plugin_get_libdir ();
sub_dir = g_build_filename (get_xdir (), "addons", NULL);

+ for_files ("/app/extensions/lib/hexchat/plugins", "*.so", plugin_auto_load_cb);
+
#ifdef WIN32
/* a long list of bundled plugins that should be loaded automatically,
* user plugins should go to <config>, leave Program Files alone! */
--
2.14.3