Compare commits

...

2730 Commits

Author SHA1 Message Date
07873ca4e9 Migrate from gtk_widget_is_composited to gdk_screen_is_composited.
gtk_widget_is_composited is gone in GTK 3.
2023-01-28 11:30:07 -06:00
bde8d9d20a Remove gtk_tree_view_set_rules_hint.
This function is deprecated and is ignored by GTK 3. It also does
not really do anything with most modern GTK2 themes either.
2023-01-28 11:30:07 -06:00
c550dc9cb1 Migrate from gdk_drawable_get_size to gdk_window_get_{width,height}.
gdk_drawable_get_size is gone in GDK 3.
2023-01-28 11:30:07 -06:00
df8f516a40 Migrate from gdk_beep to gdk_desktop_beep.
gdk_beep is gone in GDK 3.
2023-01-28 11:30:07 -06:00
67b25fddf1 Add option to exclude nickname in window title (#2759) 2023-01-24 17:03:53 -06:00
bb7a03e9f6 Fix updating the topic (user@host) of dialogs on CHGHOST.
This is updated when a user receives a new message but would have
not been updated when a user sent a CHGHOST.
2022-11-05 12:42:51 -05:00
9d175cc459 Also request the extended-monitor capability.
This allows getting hostname/awaymsg/etc updates for monitored clients
which will update the internal cache for that data.
2022-11-05 12:42:51 -05:00
4ad7afe884 ci: Add gtk-update-icon-cache to msys2 workflow 2022-10-29 15:57:29 -05:00
221283ba19 add shortcut options in setup
will allow the user to control on which of the shortcuts to create:
* start menu - will now show the relevant window
* desktop
* quick launch

on uninstall, all will be removed on uninstall
2022-10-29 15:42:30 -05:00
8cf2aa5586 Make it more clear that /SERVER and /SERVCHAN use SSL by default. 2022-10-16 15:35:43 -05:00
8fb0d2311f Default /SERVER and friends to use SSL when built with OpenSSL.
Since commit 747a52aae8 users have to
opt-out of using SSL when creating a new server. This commit makes
it so /SERVER also uses SSL by default.

In order to connect insecurely users must now use one of these
methods:

    /SERVER -insecure irc.example.com
    /SERVER irc.example.com -6667

The `-ssl` flag and the `+port` syntax have been retained for compat
reasons.
2022-10-16 15:35:43 -05:00
2dbc6adbc2 Fix PROTOCTL NAMESX and only send when not using multi-prefix.
This capability is the equivalent of the old protoctl token.
2022-09-22 12:07:07 -05:00
bd4290a1a9 Support whitespace between language codes
So far, when configuring multiple spell check languages, Hexchat
requires the user to separate multiple entries with commas and
only commas. This patch allows users to also enter whitespace, e.g.

  de_DE, en_US

as is common in many applications.
2022-09-20 18:08:37 -05:00
46c9df1863 Fix various compiler warnings.
fish.c: -Wincompatible-pointer-types
fkeys.c: -Wmisleading-indentation
proto-irc.c: -Wincompatible-pointer-types
util.c: -Wdeprecated-declarations
xtext.c: -Wmaybe-uninitialized
2022-08-29 13:50:03 -05:00
20c50fd7ef notification_plugin_deinit: Set function signature to int(void *)
Previously the function signature was inconsistent throughout
src/fe-gtk/plugin-notification.{h,c}: One file had the signature
int(void), while the other had int(void *). Since this type mismatch
might lead to problems (especially with LTO) and the (possibly provided)
function argument isn't used in the function's definition, this commit
sets int(void *) as function signature for both the declaration and
definition of the function.

Fixes: https://github.com/hexchat/hexchat/issues/2726
2022-08-26 12:40:15 -05:00
d7c6c424e8 servlist: Remove ACN
They are no longer supporting TLS and let their cert expire.

Non-TLS networks do not belong in our default list.

Closes #2722
2022-08-01 14:07:31 -05:00
ec9653e754 servlist: Remove IRCHighWay
They have self-signed certs which doesn't belong in our default list.
2022-07-15 13:17:25 -05:00
dfda8f2eee fix sysinfo print of cpu name
the cpu name might have tailing spaces in Windows, which weren't remove before printing.
2022-05-14 12:42:46 -05:00
b8645bfbf2 Split long SASL auth strings into 400-byte chunks (#2709)
Fixes #2705
2022-05-13 15:56:26 -05:00
778047bc65 raise the max length of a server password to 1024
- alleviate #1296
2022-05-10 12:31:12 -05:00
2638c88479 update python3 from 3.6 to 3.8.10
Signed-off-by: DjLegolas <djlegolas@protonmail.com>
2022-05-08 14:20:58 -05:00
6da8f97e37 fix addons load in python2 2022-05-07 11:34:47 -05:00
2dd7636134 appdata: Update appstream usage for desktop applications 2022-04-30 16:47:04 -05:00
13b6a40b9c Change preferences sub-dialogs to be modal
This solves the issue where the parent dialog is closed and then
the child dialog is used.

This is however only a partial fix:

- Many other dialogs throughout the codebase do not currently have
  parent windows and need to be refactored.

- Not all window managers respect modal so users can still trigger
  bugs. We can be more defensive against this but it requires more
  refactoring.

Closes #2686
2022-04-16 18:41:34 -05:00
dd167b4c83 python: Fix API break in hook_timer()
Closes #2691
2022-04-15 13:43:22 -05:00
133f628064 Display common help numerics as SERVTEXT.
This makes it a lot easier for users to actually read.
2022-04-02 12:17:54 -05:00
d99a98ff4c notification: Don't print failure to load backend in UI
This isn't actually helpful information to users generally

Closes #2152
Closes #2684
2022-03-26 11:18:00 -05:00
94efa378f7 Reverse the notify.conf linked list before writing
hexchat populates the single linked list `notify_list` defined in
`src/common/notify.c` from `notify.conf` file. Each new line read from
the file is added to the list by `g_slist_prepend()` which adds it to
the front of the list. But in `notify_save()` the list elements are read
from the start to end of the list and written to the `notify.conf`. This
means everytime hexchat is opened and closed, the contents of
`notify.conf` get reversed. This commit creates a
temporary glist in `notify_save()` and applies `g_slist_reverse()` on it
and writes the contents of this reversed list to `notify.conf`. And
solves issue #2680
2022-02-17 10:24:59 -06:00
ccf6f431bb Return userdata from pluginprefs __pairs metamethod to avoid immediate GC. 2022-02-16 12:44:09 -06:00
73c0b672a2 Bump to 2.16.1 2022-02-12 12:28:17 -06:00
7cff05c7ac Add -q/-- flags to /execwrite to EXECWRITE and cmd_execW (#2675)
added two flags to EXECWRITE and cmd_execw
-q : (quiet) to allow suppressing of additional (debug) output at the text box
--  : (stop parsing for further flags) for the edge cases where -q itself migh be part of used data and the user wants to show that at the text box

Closes #2666
2022-01-24 11:38:21 -06:00
1de339dfbc meson: Fix exported functions in plugins
This adds DEF file names in meson. Without the DEF files, every
functions are exproted from plugins.
2022-01-21 15:54:49 -06:00
a330c1cf4d sysinfo: Fix architecture detection in AArch64 Windows
AArch64 should be detected as 64 bit OS.
2022-01-21 15:54:30 -06:00
7df34cdcb2 Log when the user specifies an invalid port. 2022-01-17 18:36:49 -06:00
91adfb5917 Fix handling invalid ports.
Instead of wrapping around, which is not behaviour any reasonable
user would expect, just use the default port if above 65535.

Disallow connecting on port 0. This port has special meaning and
servers can not listen on it. It is more likely the user just
gave an invalid value to the port field as atoi("invalid") == 0.
2022-01-17 18:36:49 -06:00
9c7109b578 meson: Fix exported functions for python plugin
This fixes loading python plugin in Windows by exporting functions using
python.def file. Otherwise, hexchat_plugin_init symbol error is shown.
2022-01-11 17:26:31 -06:00
d936b653ac Add missing header
https://github.com/hexchat/hexchat/issues/2652#issuecomment-1007015314
2022-01-06 20:36:14 -06:00
d889a8e019 meson: Remove unused wbemcore dependency 2022-01-05 14:28:21 -06:00
66f5968225 Update comment 2021-12-22 12:05:08 -06:00
ba5d79b496 Be smarter about conditionally escaping URIs that are opened
Fixes #2659
2021-12-22 11:50:36 -06:00
7c27dcd524 build: Set G_LOG_DOMAIN 2021-12-22 11:46:55 -06:00
d07e8a8ab2 Remove wallchan command
This command doesn't have many legitimate, non-spam applications and is
easily confused for the similarly named 'wallops'. Moreover, many
netowrks now automatically punish or drop users who message many
channels at the same time, rendering the command mostly useless.

It also is too easy to tab-complete 'wall' into 'wallchan' when you
expect 'wallops' to come up first, which can lead to two very different
functions. If this is to be reintroduced it should be named something
with less similarity to 'wallops' or 'wallchops'.
2021-12-02 14:41:01 -06:00
3ebb2c5eec Make build job names more descriptive (#2657)
Previously every build showed up in the CI as "build".

Update the job names to reflect what they are. For example the Ubuntu
build is now called "ubuntu_build"

Co-authored-by: Patrick <tingping@tingping.se>
2021-12-01 13:07:34 -06:00
bbd60a96ec fish: enable the legacy provider if build against OpenSSL3
OpenSSL 3.0 disables a number of "legacy" algorithms by default, and we
need to enable them manually using their provider system. Note that
explicitly loading a provider will disable the implicit default
provider, which is why we need to load it explicitly.

Closes #2629

Signed-off-by: Simon Chopin <simon.chopin@canonical.com>

V2:
  * use a local OSSL_LIB_CTX to avoid leaking the legacy algorithms
    into the main SSL context.
  * Simplify the fish_init() error paths by calling fish_deinit()
2021-11-30 08:35:04 -06:00
8443755772 Fix timer being locale dependent for decimals
`/timer .1 echo hi` now works in all locales.
2021-11-12 12:44:09 -06:00
f93b13a6a3 Add missing string.h includes
Closes #2652
2021-11-11 10:24:39 -06:00
4f3ef3505a fishlim: Minor test improvements
- Don't have tests repeat themselves, meson has a `--repeat` flag
- Fix a minor leak of a GRand
- Speed up a test
- Increase timeout

This still needs a lot of improvements, it runs at lot of loops within
loops generating random strings that could be optimized. This means
it can take a very long time on some computers.

Closes #2629
2021-11-03 09:59:24 -05:00
b54593e752 Update servlist.c (#2648)
Added irc.irc-nerds.net to the server list
2021-10-30 10:51:46 -05:00
64da6ce1fc flatpak: Update shared-modules 2021-10-26 15:51:53 -05:00
3f099bace2 flatpak: Remove rename-icon from manifest 2021-10-26 11:53:00 -05:00
dac8ace90c Install icons as io.github.Hexchat
This matches our app-id as the desktop-file spec recommends.

This also fixes a bug where our notifications referred to this new
name already.
2021-10-25 15:04:38 -05:00
f42f6af1b9 Adjust parsing of RPL_WHOISSPECIAL to handle missing : for single-word whois messages
This is to support parsing the RPL_WHOISSPECIAL from unrealircd correctly if the whois message is a single word.
2021-10-20 20:48:29 -05:00
9039a5d75b Add -NOOVERRIDE flag to GUI COLOR. (#2644) 2021-10-14 09:44:11 -05:00
aabe3438fa ci: Don't install libproxy-dev 2021-10-07 14:05:47 -05:00
6fd8a8f9bf python: Open all scripts with utf-8 encoding 2021-10-02 09:49:17 -05:00
40399b1cb6 Bump version to 2.16.0 2021-10-01 14:52:09 -05:00
dd6f53f504 Fix user list not tracking mode changes
The `PREFIX` key in `ISUPPORT` (usually) takes the form
`(modes)prefixes` e.g. `(ov)@+`. The current implementation will
therefore set `serv->nick_modes` to a string like `"(ov"` instead
of the desired `"ov"`. This causes the nick list to not properly
update with which users have which prefix modes. Skip over the
initial `'('` so we capture the correct modes and fix that issue.
2021-10-01 14:50:44 -05:00
3f07670b34 win32: Update to OpenSSL 1.1 2021-10-01 13:47:42 -05:00
2985dde7f0 Explicitly set app icon in notifications 2021-10-01 11:56:49 -05:00
8239fbd041 Be a bit less insulting about servers with longer line lengths. 2021-08-24 16:40:54 -05:00
899b4cd3eb Increase the linebuf length to fit a full message including tags. 2021-08-24 16:40:54 -05:00
ef0e670392 Remove some weird guesswork on the 004 numeric. (#2621)
Bahamut and ircu both send 005 MODES and ELIST so this is entirely
unnecessary. The other IRCd checked for here is for a dead network.

While we're editing this code fix HexChat on servers that can only
support one mode at a time (these are mostly gateway servers).
2021-08-23 10:34:13 -05:00
69ce388a87 actions: Add MSYS2 builder 2021-07-15 20:59:27 -05:00
fee86de499 fish: Misc test cleanups 2021-07-15 20:59:19 -05:00
91439f04c0 Fix whitespace issues 2021-07-13 12:30:47 -05:00
c144d0468b Remove libnotify dependency
Instead just talk directly to the service. This fixes *sending*
a notification being blocking IO.
2021-07-13 12:26:34 -05:00
482efae89a actions: Build on Ubuntu 20.04
18.04 requires newer Ninja
2021-07-13 11:33:00 -05:00
cbb0927a7a build: Misc cleanup of options
Cleanup of option names, use features where applicable, and printing
of summary.
2021-07-13 11:26:59 -05:00
25440a07c3 Avoid direct use of libproxy
Since hexchat already depends on GLib, it's better to use GProxyResolver
instead. This might use libproxy, or not, as appropriate.

P.S. This removes a memory safety issue because proxy_list is allocated
using malloc(), not g_malloc(), and therefore using g_strfreev() is
incorrect. The proper way to free the proxy list returned by libproxy
is to use px_proxy_factory_free_proxies() (but nobody does that because
it was added in libproxy 0.4.16, which is somewhat recent).
2021-07-12 11:29:15 -05:00
869a8d7ab3 Fix allowed characters when escaping URIs
Closes #2608
2021-07-10 11:35:35 -05:00
c8536ed50c servlist: Remove freenode
Closes #2604
2021-07-09 19:29:21 -05:00
cfb43bf550 servlist: Add back TURLINet (#2602) 2021-07-02 02:36:29 +00:00
816769af5b Add DigitalIRC to default servlist.c 2021-06-29 13:53:23 -05:00
c5e0b22c55 servlist: Add ICQ-Chat
Closes #2506
2021-06-26 10:51:32 -05:00
c9145a1460 Update servlist.c - Network clean up (#2597)
Added 1 server to Aitvaras
Added 1 server to EFNet
Added 2 servers to chatpat (previously UniBG)
Added DosersNET
Put network list into alphabetical order.
Removed 2 servers from EFNet
Removed 3 servers from Aitvaras
Removed 3 servers from UniBG (now chatpat)
Removed AccessIRC (no longer exists)
Removed BetaChat (no longer exists)
Removed Buddy.IM (no longer exists)
Removed ChatNet (no longer exists)
Removed ChattingAway (no longer exists)
Removed Criten (connects to Rizon)
Removed DeltaPool for having zero connections and channels.
Removed ElectroCode (no longer exists)
Removed GalaxyNet (no longer exists)
Removed GeeksIRC (no longer exists)
Removed IdleMonkeys (no longer exists)
Removed IndirectIRC (no longer exists)
Removed iZ-smart.net (no longer exists)
Removed ObsidianIRC (no longer exists)
Removed PonyChat (no longer exists)
Removed SceneNet (connects to ChatJunkies)
Removed SeilEn.de (no longer exists)
Removed SolidIRC (no longer exists)
Removed StarChat (no longer exists)
Removed TURLINet (no longer exists)
Removed WorldNet (no longer exists)
Renamed DeltaAnime to DaIRC
Renamed Irctoo.net to IRCtoo
Renamed KBFail to Keyboard-Failure
Renamed Krstarica to PIK
Renamed OzNet to OzOrg
Renamed PIRC.PL to pirc.pl
Renamed PTNet.org to PTNet
Renamed UniBG to chatpat
2021-06-26 01:14:42 +00:00
199c03c8c6 Fix parsing +beI lists on InspIRCd. 2021-06-22 09:50:22 -05:00
cdcdeacd63 actions: Remove default value in ubuntu build 2021-06-21 12:48:47 -05:00
28a4726ddc actions: Add flatpak action 2021-06-21 12:48:38 -05:00
6b7d110ced actions: Upload windows artifacts for each arch 2021-06-21 12:48:32 -05:00
d5b4577315 Implement generic support for IRCv3 standard replies. (#2589)
https://ircv3.net/specs/extensions/standard-replies

Co-authored-by: Patrick <tingping@tingping.se>
2021-06-20 23:29:36 +00:00
55e4f1c42e Implement support for strikethrough text.
https://defs.ircdocs.horse/info/formatting.html
2021-06-20 10:39:39 -05:00
08e13a3ac5 Replace identify-msg support with solanum.chat/identify-msg. 2021-06-19 20:16:40 -05:00
f5926fbd23 Consistently set the SSL state in /reconnect.
We need to use a temporary variable here as we're overwriting the
existing server object which may have values set here already.
2021-06-17 19:47:34 -05:00
623d93c6f1 Switch back to using newserver as the default server name. 2021-06-17 19:47:34 -05:00
1f608e600b Require opting out of SSL verification in /server and /reconnect. 2021-06-17 19:47:34 -05:00
747a52aae8 Default new servers to use TLS if built with OpenSSL. 2021-06-17 19:47:34 -05:00
1f5c95d9e9 Always pass a valid URI to gtk_show_uri()
This can fix issues like a crash when invalid characters get passed
through.
2021-06-17 15:22:40 -05:00
09e9d1f749 Place ChanServ notices in the front buffer if the front buffer is on the same network. 2021-06-17 11:03:18 -05:00
333a02d015 Implement support for the IRCv3 UTF8ONLY specification.
https://ircv3.net/specs/extensions/utf8-only
2021-06-01 09:26:48 -05:00
734d888210 python: Fix off by one range
The range goes from 31 to 1 inclusive (#2391).
2021-05-28 19:39:44 -05:00
4fc22a978a Parse the output of the 005 numeric correctly. (#2585)
This implements support for the full 005 numeric syntax including negation and value escapes as defined in draft-hardy-irc-isupport-00. This fixes HexChat on servers that:

- Have unloaded a previously supported feature at runtime (e.g. unloading the monitor module in InspIRCd removing the MONITOR token).
- Have escaped spaces in the network name (see testnet.inspircd.org for an example of this).
- Send a value for a token where HexChat expects none (e.g. INVEX on InspIRCd — the value for this token is optional) or vice versa.
2021-05-28 19:37:50 -05:00
7f8b0a19cf Add ACN IRC Network (#2524)
Website: https://irc.acn.gr
Round-Robin DNS: global.acn.gr
Ports: 6667 - 6697(ssl only).
2021-05-24 13:26:06 -05:00
cdfc3b9ea9 Update servlist.c (#2522)
* Update servlist.c

Added DeltaPool to IRC Networks

* Update servlist.c

Updated to support SASL
2021-05-23 22:46:00 -05:00
076b2c1c73 Merge pull request #1457 from arodland/forgiving-ctcp
Be forgiving of a missing ending CTCP delimiter in a truncated message
2021-05-23 21:19:28 -05:00
7121bb6e82 plugin interface: 💄 2021-05-23 21:17:07 -05:00
da26097aab notification: Implement notification option for channels 2021-05-23 21:17:07 -05:00
e03fab07ed plugin interface: Refactor "flags" option in "channels" list to be more clear with bit operators 2021-05-23 21:17:07 -05:00
0a85d79dff Adding LibertaCasa + TripSit to servlist.c (#2538) 2021-05-23 21:16:39 -05:00
d3545f37cd Change default network to Libera.Chat 2021-05-23 21:15:52 -05:00
ad20708766 Added SimosNap to server list (#2349) 2021-05-24 02:12:20 +00:00
37118a4d2b Implement support for the IRCv3 account-tag specification. (#2572)
Co-authored-by: Patrick <tingping@tingping.se>
2021-05-23 20:53:28 -05:00
6199635e7f Add the official EU server to hackint network (#2495) 2021-05-23 20:47:33 -05:00
c64dda4dea Update ptnet servers (#2205)
Co-authored-by: Elias <elias-m-barreira@telecom.pt>
2021-05-23 20:42:07 -05:00
5310f451f2 ci: fixed python paths 2021-05-23 19:43:24 -05:00
65930492ca ci: fixed Inno Download Plugin download path 2021-05-23 19:43:24 -05:00
04acbdc221 Update github workflows 2021-05-23 19:43:24 -05:00
e2ec2c9ab7 Fixed notifications-winrt compilation error
Both platform.winmd and windows.winmd were unable to find so added the location of each to the compiler.
2021-05-23 19:43:24 -05:00
939ec7a16e Updated Toolset to v142 2021-05-23 19:43:24 -05:00
29e78d3851 Change Inno path property 2021-05-23 19:43:24 -05:00
c06f6f2565 Implement support for the IRCv3 invite-notify specification. (#2574) 2021-05-23 19:32:00 -05:00
e4fd69e3d4 Implement support for the IRCv3 SETNAME specification. (#2571) 2021-05-23 13:12:10 -05:00
f0554b27df Add a workaround for icons not scaling right on HiDPI screens. (#2573) 2021-05-23 13:01:39 -05:00
65edc9ad9a add tilde.chat
https://tilde.chat
2021-05-21 11:05:42 -05:00
a25f238168 Add Libera Chat to network list 2021-05-19 12:08:03 -05:00
90c91d6c9a plugins/lua/lua.c: fix segfault on lua_pop with Lua 5.4.3
Closes #2558

Co-authored-by: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Signed-off-by: Mateusz Gozdek <mgozdekof@gmail.com>
2021-04-04 21:17:05 -05:00
090fd29acf python: Fix exception with list_pluginpref()
__decode cannot work (with Python3) because prefs_str has no attribute 'decode'.

Related to https://github.com/hexchat/hexchat/issues/2531
2021-03-07 15:20:58 -05:00
cc04916137 url.c: add gemini & gopher parsing 2021-03-07 11:59:04 -05:00
964ae72fa8 Better handle various ctime() calls failing 2021-03-03 15:39:02 -06:00
87eb728147 docs: fix simple typo, wory -> worry
There is a small typo in src/fe-text/fe-text.c.

Should read `worry` rather than `wory`.
2020-11-22 10:25:50 -06:00
078af20e8b fishlim: Implement correct handling of long and UTF-8 messages 2020-10-16 23:19:10 +02:00
bd3f3fa5f7 fishlim: Remove needless header 2020-10-16 23:19:10 +02:00
df818ad7d9 fishlim: Remove compiler warnings 2020-10-16 23:19:10 +02:00
c7844c775a fishlim: Remove needless functions for tests 2020-10-16 23:19:10 +02:00
4758d3705d fishlim: Fix result 2020-10-16 23:19:10 +02:00
bbbc2aad1b fishlim: Fix cast 2020-10-16 23:19:10 +02:00
7a275812c0 Revert word array length change
It turns out that the rfc sets a limit of 15 arguments and the
server (irccloud) sending that many in ISUPPORT was updated to
split it into multiple lines.
2020-09-21 11:22:50 -07:00
453cb7ca79 Increase max number of words a line can be split into
This may have unintended side-effects but 32 is a very low value
and I was seeing real world bugs being caused by this. Specifically
an ISUPPORT line with more features than this could store.
2020-09-17 15:50:28 -07:00
163608d7fd Use pango_font_metrics_get_height() to calculate font height (#2500) 2020-09-07 18:53:31 +02:00
71eb79fee4 Hide Focus Channel when the selected channel is already focussed
When the channel is focussed, the menu item does nothing so
it isn't useful to have it in the menu.

Fixes: commit c361bdca6a
See-also: https://github.com/hexchat/hexchat/pull/2255#issuecomment-475841824
2020-08-05 18:12:31 +02:00
aec72593f2 SASL EXTERNAL doesn't necessitate a certificate 2020-07-22 10:34:19 -07:00
c5a798beec FiSHLiM: Support for CBC mode + more commands (#2347) 2020-07-13 16:27:27 -07:00
2f376953f3 Add "DarkScience" to default server list. (#2474) 2020-05-31 17:59:06 -07:00
53952feddd Fix parsing of 313
Closes #2472
2020-05-26 16:50:04 -07:00
f9adf88eca Remove 2ch from network list
It split into multiple networks; Both are very small and can't even match our modern guidelines like supporting TLS. I'll just use this as an opportunity to clean up the list a bit.

Closes #2465
2020-05-14 23:15:14 -07:00
82a424fc8a win32: Fix undefined symbol for builds with -with-plugin=false
Windows builds without plugins can use notification-windows.c, which
uses module_load in its notification_backend_init function.

module_load was previously guarded with a USE_PLUGIN ifdef, but we do
need this function for Windows builds even if plugins are disabled.

This fixes a critical build issue for all Windows builds without
plugins.
2020-05-02 20:38:17 -07:00
c2cdf0d2a1 win32: Disable ASLR for Windows debug builds
GDB is usually able to debug executables with ASLR by temporarily
disabling ASLR when running that executable. This is only supported on
Linux. On Windows, GDB cannot debug ASLR executables.

This removes the dynamicbase linker flag on Windows for debug builds in
order to be able to debug that executable later.

Hardening an executable with ASLR is important for release builds, but
for debug builds being able to debug is much more important.
2020-04-19 16:13:18 -07:00
83daed8706 win32: Fix building executables with invalid entrypoints
Windows builds of the GTK frontend use the pie flag to compile
hexchat.exe. Windows needs an explicit entrypoint when compiling with
--pie, otherwise an invalid executable is created.

This sets the entrypoint of the executable on Windows (as it is
currently set in the Visual Studio project files).

This fixes a critical build issue which prevents all Windows builds
using Meson from working.
2020-04-19 16:12:42 -07:00
5d5838e712 win32: Replace include of winuser.h with windows.h
winuser.h should never be included directly. windows.h should be included instead.

This fixes a critical build issue added in c5d47fc which makes all MinGW builds fail.

See #2403.
2020-04-19 03:02:29 -07:00
082f2f8ceb Remove Moznet
Mozilla's Moznet no longer exists. They migrated to Matrix.
2020-04-18 15:05:29 -07:00
7b950eb021 Fixed proxy user/password buffer overflow
By using a dedicated buffer for sending the username and password for the SOCKS5 proxy, there will be no overflow when copying them to the buffer.
And therefore, RFC 1929 is fully supported.
2020-04-11 13:19:31 -07:00
37192a9136 Updated the maximum length of the socks5 user and password to comply to RFC 1929, where both the password and the username length is definied as a maximum of 255 2020-04-11 13:19:31 -07:00
3871fbaacb build: Fix potential undefined variable 2020-03-11 11:13:25 -07:00
5deb695919 build: Better support building against python 3.8+
Closes #2441
2020-03-11 11:08:28 -07:00
bcff9a2ad8 Fetch latest .po files 2020-02-08 11:06:07 -08:00
9c44d7baf4 Avoid prioritising MODE queries for channels with hyphens in their name
If a user has a large number of channels containing hyphens in their
names, the initial MODE queries will have the same high priority as any
PINGs, and so will block the PINGs from being sent, causing the
connection to time out due to a lack of PONGs received.
2020-01-01 16:39:11 -08:00
c361bdca6a Add a channel context menu item to focus channels 2019-12-30 18:14:53 -08:00
c522ccce7f Fix build on FreeBSD 2019-12-22 20:45:16 -08:00
58cdff728d appdata: Add OARS information 2019-12-20 23:19:54 -08:00
bfd6eea98f Bump version to 2.14.3 2019-12-20 23:19:32 -08:00
eeada79a64 build: Fix some meson warnings 2019-12-20 22:24:30 -08:00
202393a77c Follow more modern conventions for USER message
Closes #2399
2019-12-20 22:18:51 -08:00
d9809f2787 Add missing winuser.h include for mingw (#2403)
Without the include gcc will complain about WM_TIMECHANGE as undeclared.
2019-12-16 00:42:31 -08:00
ea2f298a1a readme: Remove build status badges
No longer using Travis for CI and honestly these don't provide much value
2019-12-08 12:56:18 -08:00
7d9f3acfc9 Fix capability negotiation ending before sasl finishes with multi-line cap
Closes #2398
2019-11-24 13:01:48 -08:00
ad5be08a07 Ignore some non-interesting filesystem types
Generally, how much space we have in squashfs, or tmpfs shouldn't
interest us. This becomes more relevant in distros like Ubuntu, where
snaps are a thing, and each snap mounts their own FS in a squashfs that
is always full, thus falsifying the output of sysinfo.
2019-11-13 21:37:21 -08:00
308838da32 Switch to Github Actions for Linux CI 2019-09-20 09:53:13 -07:00
nia
92014628d1 build: Make generated headers a dependency for users of common. 2019-07-17 11:50:16 -07:00
586f089df6 Python: Fix error in hexchat.emit_print when passing time attribute 2019-06-24 07:37:20 -07:00
a67eafc796 Revert "Create FUNDING.yml"
This reverts commit 5382401893.
2019-06-03 22:19:45 -07:00
5382401893 Create FUNDING.yml 2019-06-03 21:43:17 -07:00
8bb768ef93 Fix a typo-error in src/common/hexchat.h:485 "haxchatprefs" -> "hexchatprefs" 2019-05-28 14:33:39 -07:00
ed1d5061a4 Make dcc_ip being a per-server value.
Moved dcc_ip from prefs to sess->server.
2019-05-28 14:33:39 -07:00
468ce821fe Try building with lgtm 2019-05-22 12:41:50 +02:00
87470f30a9 servlist: add hackint irc network
- requires the use of TLS to connect on port 6697
- supports and encourages authentication via SASL PLAIN and EXTERNAL
2019-05-03 14:36:52 -07:00
ba72cc7b6d Update servlist.c
Update servlist.c
2019-04-21 18:33:24 +00:00
c1091c38b8 Extend input box GTK theme workaround to include Yaru
Fixes #2305
2019-02-25 19:13:24 -05:00
804f959a1d Remove : from various trailing parameters (#2301)
Partial fix for #2271 

This isn't an exhaustive list, but it's everything I could find. The bug still exists in the parser though, this is just a workaround for the moment
2019-01-30 19:46:13 -05:00
A_D
7abeb10cf1 python: plugin cleanup and refactor 2019-01-02 18:50:10 -05:00
a5a727122b python: Make sure help() doesn't cause hexchat to hang (#2290)
* Make sure `help()` doesn't cause hexchat to hang

Replace `pydoc.help` with a copy of `pydoc.Helper` with an empty
`StringIO` instead of stdin

* Handle BytesIO vs StringIO on 2.7
2018-12-27 14:46:02 -05:00
f7713a6a64 python: Make the plugins table dynamically sized (#2291)
Adjust the width of the columns depending on the length of the data in
each element
2018-12-26 17:15:25 -05:00
A_D
3ebfa83fdd python: Made sure to set sys.argv if it is not set. fixes #2282 2018-12-26 16:58:46 -05:00
ed55330153 python: Fix console not eating commands 2018-12-05 19:45:30 -05:00
A_D
a2ff661d40 python: Various cffi fixes
- fixed /py exec behaviour
- fixed hexchat.unload_hook() failing when passed a hook id
- fixed get_list() calls in python3
2018-11-09 18:36:59 -05:00
706f9bca82 python: Rewrite with CFFI 2018-11-09 18:36:59 -05:00
6432694455 Fix compilation failure on non-linux, non-darwin, non-windows systems.
'gnu' => Hurd
'gnu/' => all the gnu/* stuff like gnu/kfreebsd

Signed-off-by: Mattia Rizzolo <mattia@mapreri.org>
2018-09-26 13:18:54 -04:00
cf140f3ab0 Use prefix variable in pkgconfig file 2018-09-23 16:58:18 -04:00
c7322f406c build: Silence some Meson warnings and bump requirement to 0.40.0 2018-09-01 16:50:31 -04:00
18eae24acf Fix new stringop-truncation warnings 2018-09-01 16:35:48 -04:00
c092af89a2 sysinfo: Fixup formatting 2018-09-01 13:01:30 -04:00
2a8ab8bb7f sysinfo: Add support for /etc/os-release 2018-09-01 12:51:07 -04:00
8665501c77 Bump version to 2.14.2 2018-08-29 16:41:08 +00:00
7659caada1 win32: Reflect gvsbuild changes 2018-08-29 16:10:21 +00:00
fd47adf595 Fix inconsistent behavior (re)connecting on SSL 2018-08-16 22:06:36 +00:00
cadc51ede9 build: Add with-appdata option
This is mostly useful to avoid a newer gettext dependency
for translating the appdata file but it is also just useless
data for some distros without any app store.

Closes #2219
2018-07-26 09:53:29 -04:00
57478b6575 Fix sending PASS with spaces or starting with :
Closes #2186
Closes #1550
2018-05-08 16:27:18 -04:00
5c5aacd9da Fix another bad translation 2018-04-04 19:21:53 -04:00
93cc105a40 travis: Avoid locale problems 2018-04-04 19:14:59 -04:00
33300630a3 tests: Explicitly open files as utf-8 for travis 2018-04-03 16:38:53 -04:00
fd2167d856 Fix tests on Ubuntu 2018-04-03 16:30:38 -04:00
08fb808ea4 Update translations 2018-04-03 16:14:25 -04:00
c70c1e1896 travis: Run tests 2018-04-03 16:09:25 -04:00
5cd70622aa Validate all translations contain valid text events 2018-04-03 16:08:27 -04:00
5ca767f7f8 Fix plugins on macOS
The switch to the meson build system broke plugins on macOS. GNU libtool
builds shared libraries with ".dylib" and shared modules (plugins) with
the extension ".so", but meson is using ".dylib" for both.

Although overriding the name_suffix for shared_module() in meson is
possible, this would be messy for other platforms as there is no way to
query the default. Therefore it seems like we have to go with ".dylib"
for now on macOS.

However, G_MODULE_SUFFIX is defined to ".so", because glib follows what
GNU libtool does. Therefore define a separate preprocessor macro that
has the correct extension.

See: https://github.com/mesonbuild/meson/issues/1160
2018-03-31 01:29:05 +00:00
111441302c build: perl as a dependency in meson.build
With the switch to meson, the problem previously fixed in #1822 came
back. The build system might pick up the installed hexchat-config.h
instead of using the header in the source directory, as the compiler
arguments would be in the order of "-I${prefix}/include -I..".

It seems that the c_args in meson are always put to the front of the
compiler arguments, in order to be able to override any include paths
from dependencies. However, this was not the intention here, so perl
should also be modeled as a dependency. This ensures that the arguments
with local include directories come first.
2018-03-26 17:09:36 +00:00
ed6f544572 build: Add option to specify path to perl binary 2018-03-23 09:14:45 +00:00
ee85129a9b Deiconify window on tray click. Closes #2136 2018-03-20 11:32:02 +00:00
93f926bf12 build: Re-add support for the legacy perl api
This was accidentally left behind, expose it beind an option as
with the old build system but default to false now. Enough time
has passed and only distros that care about it can enable it.
2018-03-18 11:09:53 -04:00
da56297c5a build: Correctly set plugin licenses 2018-03-17 01:37:46 -04:00
5d8b4719a8 build: Fix id in plugin metainfo files 2018-03-17 01:26:12 -04:00
8a875afad0 build: Add metainfo files for addons 2018-03-17 01:21:50 -04:00
dc483b2342 Remove shift+click to close tab binding
It is an odd binding that conflicts with typical behavior
where shift click selects multiple items and there is
already the middle click shortcut to close tabs quickly.

Closes #918
2018-03-16 20:33:52 -04:00
28a3d42ad1 Bump to 2.14.1 2018-03-13 22:26:31 -04:00
eb942fc274 Revert "xtext: Always use Pango to get correct glyph width on Unix"
This reverts commit d3f1ab7813.

The performance even on Linux is just too poor in many cases.
2018-03-13 21:18:16 -04:00
27acca0f5b fix typo in comment
Signed-off-by: Mattia Rizzolo <mattia@mapreri.org>
2018-03-13 23:38:36 +00:00
ececf2f640 Fix fscanf() usage without size limit
Closes #2137
2018-03-11 19:08:26 -04:00
d72249d91f build: Remove -pie from global ldflags
According to `hardening-check` the cflag is enough for `hexchat`
and this was causing breakage in plugins

Closes #2132
2018-03-10 20:49:35 -05:00
2286990a6f Bump to 2.14.0 2018-03-10 17:02:52 -05:00
6ec523423a Fix /ignore not accepting full hosts
Fixes #1828
2018-03-09 21:34:44 -05:00
77c8fe1421 win32: Update Python downloads 2018-03-09 20:26:42 +00:00
740352ceab Remove mpcinfo plugin
The code quality of it is terrible, the user experience of using it is terrible, and it should have been removed years ago
2018-03-09 20:26:41 +00:00
541b9ca744 win32: Update to build against gvsbuild 2018-03-09 20:26:41 +00:00
e9b9ff9f38 Various fixes for mingw 2018-03-09 18:23:25 +00:00
9b8a7eaa01 win32: Respond to WM_TIMECHANGE by updating the CRT timezone info
Closes #2090
Fixes #1851
2018-03-09 13:24:08 -05:00
cdefb8e2d6 build: Fix building with-text=true and with-plugin=false
Closes #2113
2018-03-09 13:20:21 -05:00
16ee8eb233 Update translations 2018-03-08 19:18:29 -05:00
f6333b592b Fix out of bounds read when DCC message sender contains quotes
This cannot be triggered by any user generally.

Fixes #2128
2018-03-04 12:38:57 -05:00
6e4fc09ce0 Fix possible out of bounds read when being ctcp flooded
Note that this is unlikely to be triggerable by another user.

Thanks to @dequis for discovering.
2018-03-02 20:56:54 -05:00
8aa3b03261 dbus: Add option to use app-id for bus name
This is required for Flatpak but is an API break so it is opt-in
for now.
2018-02-18 04:44:59 -05:00
23c7e7c3da fishlim: Fix build warning 2018-02-18 04:31:55 -05:00
7510ab36b7 xtext: Fix accidental truncation
Fixes #2121
2018-02-11 17:24:32 -05:00
d3f1ab7813 xtext: Always use Pango to get correct glyph width on Unix
This should be slower but pango seems to be reasonably fast
on Unix though extremely slow on Windows.

https://bugzilla.redhat.com/show_bug.cgi?id=1536298
2018-02-06 17:06:50 -05:00
4cdf6460b6 xtext: Fix invalid utf-8 from truncation 2018-02-06 17:06:50 -05:00
5d3bf39103 xtext: Remove unused code 2018-02-06 17:06:50 -05:00
234fe86987 Fix Enchant 2.1.3+ support
They changed the lib name yet again...

Closes #2117
2018-02-06 16:57:30 -05:00
6ca7f84d02 Change the installation path of the appdata file to {datadir}/metainfo
The path where appdata/appstream files should be installed has been
changed from /usr/share/appdata/ to /usr/share/metainfo/.

https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#spec-component-location

Signed-off-by: Mattia Rizzolo <mattia@mapreri.org>
2018-01-24 10:29:39 -05:00
7b359875d8 Set StartupWMClass in desktop file 2018-01-20 09:33:05 -05:00
4a228d1efe This patch hopefully solves a bug that causes that when a tab (channel or private) is left with the scrollbar at the bottom, and some new text arrives, and then we select again that tab, sometimes the scrollbar is not completely down and there is hidden text and we have to scroll manually to the bottom to show all text.
This was previously submitted as an issue in: https://github.com/hexchat/hexchat/issues/1948
Maybe it isn't the ideal way to solve it, but at least I tested it and it seems to work.
2018-01-18 15:07:14 -05:00
ee8926503c Prevent undefined behaviour on memcpy 2018-01-18 04:49:10 -05:00
7d7be83216 Rename app-id to io.github.Hexchat
RDNS syntax is recommended for applications and this matches the
existing flatpak. Note that the dbus service and icons still need
renaming though the former is an API breakage.

Closes #2104
Closes #2103
2017-12-24 13:00:40 -05:00
0058587958 spell-entry: Improve robustness of enchant loading and fix 2.0 support
- Add logging and error handling to loading symbols
- Don't load unversioned symbol
- Handle new function names in Enchant 2.0

Closes #2095
2017-11-24 03:56:53 -05:00
228e08543a build: Force pkg-config lookup method for libpci
This is some meson bug but this solution works for now.
2017-11-18 21:29:56 -05:00
38f8cc8e0c sysinfo: Fix libpci detection
For some reason on my system `libpci` is found even though its not
installed...? Plus I forgot a few headers being included.
2017-11-18 21:06:21 -05:00
3e53635dfb sysinfo: Make libpci an optional dependency 2017-11-18 20:47:32 -05:00
47b653cc7c sysinfo: Avoid libpci crash when pci not available
Turns out libpci is an awful library that on any error calls
exit() and has no way of indicating an error otherwise...
2017-11-18 00:22:48 -05:00
c6d9e26e2b Fix crash when connect commands change network
Fixes #2084
2017-10-25 15:26:26 -04:00
a3db4e5773 Fix oob read in ctcp_check
word[4] can be too short, leading to the addition of ctcp_offset
putting us out of bounds. This results in an oob read in ctcp_check.
2017-10-16 21:47:47 -04:00
1452e803fb A tiny code style change 2017-10-16 05:10:32 -04:00
6f8b8c3d3c servlist: Add BuddyIM network (#2072) 2017-10-11 12:47:23 -04:00
8ddd5e3778 Add an option to disable rejoin on auto reconnect
This change adds an option `irc_reconnect_rejoin` (default ON)
which when turned OFF will prevent hexchat from rejoining channels
after an auto reconnect.

hexchat/hexchat#2069
2017-10-10 21:06:21 -04:00
4188f26ab9 Improve CTCP notice handling
Cutting off all text after \001 can result in users hiding text
so lets only bother handling it if it is a valid CTCP message
(starting and ending with \001).
2017-10-07 17:31:53 -04:00
07f1fc60da Use g_utf8_make_valid if available for cleaner utf8 handling (#2065) 2017-10-02 15:11:42 -04:00
0c494a9c24 Fix rfc_ncasecmp handling of n reaching 0
If n becomes 0 at the same time that the end of either s1 or s2 are
reached, the next iteration of the while loop wouldn't happen, so we
wouldn't correctly return 0.
2017-09-21 21:34:14 -04:00
053003f490 Handle leading spaces when matching extra alerts
It is common for users to set "foo, bar" and the leading space
has caused issues in the past so lets just ignore that.
2017-09-19 20:26:28 -04:00
4a09ce6fc3 Fix rfc_{n,}casecmp functions (#2058)
rfc_casecmp was broken because reaching terminator for str1 was used as
a terminal condition and str2 may be shorter than str1, resulting in an
oob read condition for str2.

rfc_ncasecmp was broken because it checked if n characters were checked
or if BOTH pointers reached their terminator, however the strings may
be different lengths and also less than n characters in length, meaning
that they don't both reach their terminators at the same time,
resulting in an oob read condition.
2017-09-19 14:31:48 -04:00
f4a592c4f0 Fix oob read caused by ptr[0] being NULL in inbound_notice
If ptr[0] is NULL, then strchr may return a pointer to the NULL
terminator for serv->nick_prefixes, making the if statement true, which
then leads to the pointer increment leaving ptr oob. Now we check to
ensure ptr[0] != NULL.

From the Linux manpages for strchr:
The terminating null byte is considered part of the string, so that if c is
       specified as '\0', these functions return a pointer to the terminator.
2017-09-18 22:01:48 -04:00
a388d0c553 Spelling: SOCKS5, Byte per second (#2056)
* Spelling: SOCKS5

* SOCKS4/5, Byte per second

As per https://en.wikipedia.org/wiki/Data_rate_units
2017-09-16 22:04:52 -04:00
1e5180a148 Update translations 2017-09-15 19:29:31 -04:00
18b741804c Use localized "HexChat" in window titles
Also allow rearranging of "HexChat" in window titles
2017-09-15 19:18:29 -04:00
d935197895 Change windows from starting with "Hexchat: " to ending with " - Hexchat" 2017-09-15 19:18:29 -04:00
b29a046b55 Update translations
Close #2054
2017-09-14 11:39:46 -04:00
d99cd18fb9 Improve detection of system tray support
Closes #2045
2017-08-31 10:16:03 -04:00
281038e725 UI text consistency, capitalization etc. 2017-08-19 16:49:30 -04:00
da0635c960 Adjust use of ellipsis (...) in menus according to Gnome HIG (#2035)
* Adjust use of ellipses (...) in menus according to Gnome HIG

https://developer.gnome.org/hig/stable/writing-style.html.en
2017-08-18 15:59:31 -04:00
c6f3fbd15c Add mnemonic for URL Grabber 2017-07-20 17:33:23 -04:00
0dccd8d373 servlist: skip empty lines.
Fixes #1999
2017-07-16 17:26:33 -04:00
ad359d7a04 Better handle channels with / in them with doat command
/doat #foo/bar/freenode would work for example.
2017-07-04 13:53:15 -04:00
2965fbcc87 Support changing tray icon only with tray_normal image
Previously making a hexchat icon would override all hexchat icons
not just the tray.

Fixes #2017
Closes #2018
2017-07-01 16:26:00 -04:00
98ca4e98d5 Bump meson dependency to 0.38.0
We rely upon the behavior of 11f9425a5e
2017-06-26 22:18:59 -04:00
8f2429a2d2 Fix crash when notification backend fails
Most notably on Win7
2017-06-26 17:49:03 -04:00
de157fcffd build: Fix building plugins in cygwin 2017-06-26 16:41:10 -04:00
e68976ab39 build: More robust compiler flag checks
Don't hardcode platforms but check if things actually link.

This should fix cygwin.
2017-06-26 16:38:03 -04:00
806a0da258 Fix skipping autoconnect when passed 1 URL 2017-06-22 13:19:43 -04:00
99e16110bc sysinfo: Simplify finding pci.ids file on Unix
There is probably no reason to make this user configurable just
get the correct one at build time...
2017-06-20 16:26:28 -04:00
2d184c0967 Fix crash on coloring NULL nicks
Fixes #2014
2017-06-18 06:31:34 -04:00
ce91bebc39 Fix OpenSSL 1.1 deprecations 2017-06-15 00:26:43 -04:00
27fd9b3fd6 Hide false-positive deprecated warning 2017-06-15 00:14:30 -04:00
f8467473dd build: Validate desktop/appstream files 2017-06-15 00:10:55 -04:00
2dfe5357a9 build: Fix setting the *installed* rpath for perl too... 2017-06-14 23:55:40 -04:00
67adfa6f54 build: Fix rpath not getting set for perl plugin
Some distros of perl pass an rpath so we shouldn't ignore it.
Other junk comes with it but oh well.
2017-06-14 23:31:01 -04:00
0e5eda7de8 readme: Update badges 2017-06-14 02:47:26 -04:00
628100c19f build: Replace Autotools with Meson
Quick rundown of benefits:

- Much faster:
  - Autotools (with autogen): 22 seconds
  - Meson: 7 seconds
  - Meson (with ccache): 2 seconds

- Simpler:
  - ~1000 lines smaller
  - Single simple language

- Potentially better Windows (Visual Studio) support

What is not done:

- Complete Windows support
- OSX support (easy)

Closes #2013
Closes #1937
Closes #1803
2017-06-13 23:54:51 -04:00
2edf50d4dd Actually respect away_omit_alerts for custom sounds...
Probably should think before merging things.
2017-06-10 16:28:48 -04:00
2dd5f8788c Disable custom sounds when away_omit_alerts enabled
Closes #2012
2017-06-10 16:18:55 -04:00
76430228e1 Fix input theming with Adwaita-dark also 2017-05-12 00:49:45 -04:00
fc2fe7fd28 lua: Prevent loading a script if it's already loaded
Closes #1959
2017-04-28 07:55:14 -04:00
5d72755027 lua: Prevent from loading if it's already loaded
Closes #1958
2017-04-28 07:50:43 -04:00
92496b183e sysinfo: Lower priority of make.conf for distro name
This is used elsewhere other than Gentoo so it is a rather
unreliable check compared to lsb-release.
2017-04-28 07:44:55 -04:00
88cb0c9d20 Fix signature of other notification backends
Why isn't this a compiler error in the first place..
2017-04-28 07:38:47 -04:00
ec94565cb9 winrt: Show some exceptions 2017-04-28 07:33:36 -04:00
552b2b1315 thememan: Check for portable-mode file in the application directory.
Fixes #1902
2017-04-04 13:22:45 -04:00
a524adc698 Add editorconfig, describing what indenting style to use.
See http://editorconfig.org/ for more info.
2017-04-04 13:22:03 -04:00
eccd0d05b5 python: Use HEXCHAT_EAT_XXX where appropriate. 2017-03-30 16:58:49 -04:00
be6473227b Fix key exchange
Clients will receive the proper shared secret.

Eliminates error message:
SSL_read: error:05066064:Diffie-Hellman routines:compute_key:no private value

Fixes #1974
2017-03-30 16:32:40 -04:00
2f0239eb18 Fix bashism
From tnn@ of NetBSD.
2017-03-23 17:25:36 -04:00
99bdc4f251 Fix email address pattern, it can starts with digit 2017-03-10 12:28:03 -05:00
30a223a6cb Removed ctrl+w keybinding from close menu. Closes #397. 2017-02-27 04:22:59 -05:00
7d78c6bca0 Better handle mode numerics starting with :
These are still awful but until we have a real parser..

Fixes inspircd/inspircd#1295
2017-02-18 21:45:38 -05:00
b1e963f563 servlist: Use SSL with OFTC by default
They now use Lets Encrypt which should be trusted.
2017-01-07 20:50:09 -05:00
525a3bcc02 Increase default scrollback size to 5k
This is totally reasonable for a modern computer.
2017-01-05 17:58:06 -05:00
2376b7fb6a fishlim: Fix not including config.h 2017-01-05 13:07:51 -05:00
eddaf8c396 build: Fix checking for OpenSSL 1.1 functions
Fixes #1920
2017-01-05 12:52:04 -05:00
dfaf0e31c7 Tweak shadow in preferences 2016-12-27 10:12:05 -05:00
63e9c72114 win32: Update Python to 3.6 2016-12-23 14:04:32 +01:00
2c80cb7efd Use a scrolled window for large preference pages
Closes #1722
2016-12-22 07:32:44 -05:00
4c178782a7 Don't combine compression with pixdata option for icon resources
This made minimal difference and is not recommended by upstream.
It also is affected by a regression in the latest gdk-pixbuf release.

https://bugzilla.gnome.org/show_bug.cgi?id=776105
2016-12-17 20:00:46 -05:00
aa7080f8fe Fix building fishlim against libressl also
Also part of #1898
2016-12-13 17:37:15 -05:00
d583ca7d92 Use AC_CHECK_FUNCS to find functions not in LibreSSL
LibreSSL might not have all functions of OpenSSL 1.1.0 so use
AC_CHECK_FUNCS to find them first before using them.

Closes #1899
Fixes #1898
2016-12-13 17:12:04 -05:00
1b760dd22b Bump version to 2.12.4 2016-12-10 15:45:38 +01:00
02c92599fa Bump version to 2.12.4 2016-12-10 09:30:51 -05:00
26acd02e9f Enable input_filter_beep by default
This just allows for spam.
2016-12-04 05:02:15 -05:00
e7da3a052d Avoid mixed declaration 2016-12-04 04:44:10 -05:00
b6426a1e9f Fix printing invalid utf8 from /exec output
This could possibly cause a crash.

On a related note exec_data() and exec_handle_colors() could probably
use a pass cleaning up to ensure they "do the right thing".
2016-12-04 04:39:06 -05:00
f2d93f5abe properly clean the autogenerated org.hexchat.service.service 2016-12-01 18:20:48 -05:00
9ab03c5d23 Update appdata 2016-12-01 06:06:53 -05:00
3118df2042 Fix timers being incorrectly removed
Possibly fixing #1866
2016-11-30 00:52:48 -05:00
c7849a8921 Fix typos s/Recieved/Received/ 2016-11-28 15:17:36 -05:00
13f6d9265a Respect plugin hook changing tab color
Fixup to 241dd69b08
2016-11-11 20:02:24 -05:00
241dd69b08 Further tab color improvements
- Combine the three properties into a single one
- Finally fully fix the handling with plugins handling events

TODO: Look into lastact handling of these, seems wrong
2016-11-11 19:27:57 -05:00
539949973c More fixes for tab color handling with plugins
Part 2 of 03767ee0f9

So how the colors work should be pretty straight forward:

- A message comes in and is handled, this sets the state flags:
    nick_said, msg_said, new_data. These map to tab colors.
- This state is reset under one of these conditions:
  - It is commited to the UI when actually printed on unfocused tab
  - Event is interupted by a plugin hook
  - The tab focus is changed
2016-11-11 01:25:12 -05:00
e7c88e0f83 Fix private highlights not setting tab color
Caused by 03767ee0f9

Fixes #1871
2016-11-11 00:45:00 -05:00
85bdb06cad Convert doat to an internal command
- Trivial plugin
- Useful for many users
- Was under a dumb license
2016-11-09 17:29:23 +01:00
a0e80ebda2 Final fixup of OpenSSL 1.1.0 changes 2016-10-23 03:34:15 -04:00
1186236ac1 ssl: Fix building with older OpenSSL too 2016-10-23 01:09:27 -04:00
217fa9d0f9 ssl: More OpenSSL 1.1.0 fixes 2016-10-23 00:58:28 -04:00
6c8b6ce23f Bump version to 2.12.3 2016-10-22 16:12:05 +02:00
3f279971c5 Bump version to 2.12.3 2016-10-22 08:45:18 -04:00
e7101ebcae Default net_ping_timeout to 60 2016-10-22 06:51:11 -04:00
f64d1c847a mpcinfo: Do not modify string literals 2016-10-14 13:18:49 -04:00
116a394ef6 perl: Remove dead assignment 2016-10-11 11:48:36 -04:00
ebc40fe9c7 Added MHOP command 2016-10-11 09:58:56 -04:00
c0aa47c7a1 fishlim: Fix MEMZERO macro using element number not bytes
Closes #1837
2016-10-11 09:58:06 -04:00
f38261f666 mpcinfo: Fix memory leaks
Closes #1838
2016-10-11 09:55:29 -04:00
2a81b98e7b Don't abort if translated text event fails
At least try the untranslated one...

Also while at it don't present a ton of dialogs to the user
about this failure, they wouldn't even know what to do with
that information.
2016-10-10 14:11:08 -04:00
bb8f0beabe Update translations
This is mostly to fix a bogus translation in es.po
2016-10-10 13:55:27 -04:00
adea019820 Bump version to 2.12.2 2016-10-09 00:14:43 +02:00
50e2c6b3c7 Bump version to 2.12.2 2016-10-08 17:51:22 -04:00
7db74ec205 Update translations 2016-10-08 15:10:52 -04:00
492c209d07 Don't update usercount if doing nameslist 2016-10-08 14:55:58 -04:00
29b5785bb4 Update usercount in inbound_nameslist_end 2016-10-08 14:55:58 -04:00
7329dbdc57 fishlim: Bump version 2016-10-08 14:48:49 -04:00
bfe0af69fa fishlim: Remove outdated INSTALL file 2016-10-08 14:48:49 -04:00
c81c89dc80 fishlim: Fix saving nicks containing [ or ]
Part of #1440
2016-10-08 14:48:49 -04:00
31dd020114 fishlim: Add support for the /me command
Part of #1440
2016-10-08 14:48:49 -04:00
321587c73b fishlim: Add commands /topic+ /msg+ and /notice+
Part of #1440
2016-10-08 14:48:49 -04:00
dba19a961b fishlim: Add /keyx for DH1080 key exchange
Losely based upon work from PR #1440

Fixes #653
2016-10-08 14:48:49 -04:00
65abf5c532 sysinfo: fixup 49758cafba. (#1827)
MAC_OS_X_VERSION_MAX_ALLOWED reflects the currently running OS X version
more closely than MAC_OS_X_VERSION_MIN_REQUIRED, given it's defined as
max(current_version, MAC_OS_X_VERSION_MIN_REQUIRED).

Additionally, we should check if MAC_OS_X_VERSION_10_9 is actually
defined, otherwise the whole macro logic breaks apart.
2016-09-30 01:23:59 -04:00
c79ce843f4 build: Reorder includes to avoid installed plugin header
When hexchat is already installed into a non-default prefix, a new build
could pick up ${prefix}/include/hexchat-plugin.h from the installed
version instead of the local header, as configuration variables such as
$(GLIB_CFLAGS) would point to -I${prefix}/include.

Reordering the includes and moving -I arguments to CPPFLAGS prevents
this, as it ensures the local directories are always searched first.

This was no problem when compiling for /usr or /usr/local as these
directories in the compiler search path are always searched last.

Closes #1822
2016-09-26 19:16:42 -04:00
49758cafba sysinfo: fix compilation on OS X 10.9 and lower. (#1821)
Use the (deprecated) Gestalt functionality for fetching the fine-grained
OS X version number on 10.9 and lower.

The newer NSOperatingSystemVersion structure is only available on
10.10+.
2016-09-25 23:49:56 -07:00
15600f405f Sanitize network name for scrollback files
This prevents using invalid chars on Windows or creating directories
2016-09-11 15:50:19 -04:00
910851e04d perl: Fixed Windows build with VS2015u3. 2016-09-07 04:00:10 -07:00
d1bd441a9a plugin: Add chanmodes to channels list 2016-09-03 15:47:37 -04:00
737f87fa16 sysinfo: Fix leak 2016-09-03 12:29:01 -04:00
4658c5d4e5 sysinfo: Don't print swap if 0 2016-09-03 12:24:15 -04:00
332f2e65b9 Add .mailmap file
This just cleans up the results of git logs
2016-09-01 23:10:35 -04:00
3131661f9e dbus: Remove dbus-python example in favor of GDBus 2016-08-27 23:11:29 -04:00
ec4d3de9d2 dbus-client: Rewrite with GDBus
This is just a direct port and should change no logic
2016-08-27 23:04:20 -04:00
439ff094ce Fix building against openssl 1.1.0
Fixes #1759
2016-08-27 22:57:09 -04:00
7281da8b2c build: Avoid installing uncessary files with features disabled 2016-08-27 22:43:07 -04:00
dc09f2c75d Remove unused preference
I can't really think of a reason this would be needed
and since it doesn't do anything, and didn't since xchat,
 might as well remove it.
2016-08-20 23:24:19 -04:00
97d4afc4fb Update appdata file 2016-08-10 12:43:03 -04:00
19187dbacd lua: Fix handling -1 value in pluginpref 2016-08-05 21:15:26 -04:00
9d74ceedfd python: Fix get_pluginpref()
This relied on undocumented behavior of hexchat_pluginpref_get_int()
that has been fixed recently. -1 is the correct failure value.
2016-08-05 21:08:52 -04:00
034624983b plugin: Fix return value of hexchat_pluginpref_get_int()
On failure it should always return -1, atoi() returns 0.

Fixes #1785
2016-08-05 20:56:16 -04:00
74f014bd8c build: Add flag to disable stack-protector
This is currently an issue when building in Flatpak
2016-07-28 13:52:33 -04:00
aabcf6f9f4 Fix crashes when plugins modify UI during Close Context
This probably doesn't catch them all but setting tab color
and printing text at least do not crash in the common case.
2016-07-24 21:14:11 -04:00
ac986bb3a4 Fix leak 2016-07-24 21:10:34 -04:00
03767ee0f9 Kill fe_set_hilight()
It just duplicates functionality and this fixes:

- alert_taskbar chanopt not being respected
- tab color being incorrect when highlight print events are eaten
2016-07-24 18:08:09 -04:00
ba87247781 dcc: Improve handling multiple resumable offers
Multiple offers for the same file are resumable. Attempts to resume more
than one of the offers causes the other offers to start a new file.

Closes #1764
Fixes #1763
2016-07-20 14:11:01 -04:00
f845af0370 dbus-client: Fix missing include
Fix "Implicit declaration of function exit" compile error

Closes #1770
2016-07-20 14:04:30 -04:00
9ca1606e2a lua: Force 'return' when = is present 2016-07-14 17:04:58 +03:00
9c049271e7 lua: Add automatic return and = handling in console. 2016-07-14 01:43:26 +03:00
e647cd00c6 setup: Disabling input styling requires restarting 2016-07-05 15:40:42 -04:00
91df075d62 Fix input styling with Adwaita 3.20 theme 2016-07-05 15:26:05 -04:00
6168507272 win32: Update Python to 2.7.12 and 3.5.2 2016-07-02 19:39:30 +02:00
9fbd23b06f win32: Download redist for Perl if needed 2016-07-02 19:39:25 +02:00
9e11280e52 dcc: Introduce dcc_type and dcc_state enums
Closes #1705
2016-06-30 15:51:10 -04:00
77dccacd02 dcc: Fix resuming with DCC GET
Fixes #1746
Closes #1747
2016-06-30 08:45:01 -04:00
0667519d17 fkeys: Change unprintable characters to octal notation
- ^O is \017
- ^B is \002
- ^C is \003
- ^] is \035
- ^_ is \037
- ^V is \026

See ASCII(7) for an octal and hexadecimal table.
2016-06-29 15:51:53 -04:00
fbacb82191 Add keybinding for reverse video text
This adds the Ctrl+R keybinding by default to insert \026, the
character used for the reverse video text attribute.
2016-06-29 15:50:53 -04:00
6b2cc1d28b cfgfiles: Reinitialize timers on net_ping_timeout change
This ensures that changes will take effect without a restart.
2016-06-29 15:42:11 -04:00
a970c1ae2e cfgfiles: Introduce an after_update callback
This allows individual preferences to take action when their value is
changed.

Signed-off-by: Ben Gamari <ben@smart-cactus.org>
2016-06-29 15:42:11 -04:00
6a0e131b88 menu: Ensure that toggling lag-o-meter changes timer state 2016-06-29 15:42:11 -04:00
215a164e57 Ensure that timers are freed and activated when necessary 2016-06-29 15:42:11 -04:00
9e4c2ddc47 Apply timeout changes made in preferences dialog
Just involves a bit of refactoring.
2016-06-29 15:42:11 -04:00
bcbe42dd7a Introduce and use fe_timeout_add_seconds
This should allow the operating system to be a bit more lax about
timeouts, allowing more efficient power management.
2016-06-29 15:42:11 -04:00
25e197a6c8 dcc: Disable timeout timer when not in use
This should mean that hexchat never *needs* to wake-up unless prompted
by socket activity (assuming that the lag-o-meter is not enabled).
2016-06-29 15:42:11 -04:00
7dca220486 Refactor timer handling
This allows us to omit the lagometer timer in the event that it is not
enabled, bringing the baseline wake-up rate down to 1Hz from 2Hz, which
could bring considerable power savings on mobile devices.
2016-06-29 15:24:03 -04:00
111ba3750f Mask nickserv ghost password
Closes #1750
2016-06-29 15:19:28 -04:00
16ba39d9fa Forcibly reset iconv converter after every conversion.
Despite what g_convert_with_iconv's docs say, it does not reset the converter on a failed conversion (iconv returns -1).

Fixes #1758
2016-06-24 12:09:35 -07:00
4ed1acfd52 Use constant instead of literal. 2016-06-24 12:05:37 -07:00
a1d2272dc0 notifications-winrt: Fix all uses of "" to L"".
The API uses Platform::String^. String's constructor takes in char16*.

Fixes #1755
2016-06-21 07:39:50 -07:00
c12f33aa4c servlistgui: Error if nicks left empty 2016-06-12 15:01:39 -04:00
a031a24cfd Bump version to 2.12.1-2 2016-06-05 11:22:24 +02:00
c698e13c0d Couple of minor const correctness fixes 2016-05-28 16:52:26 +10:00
10e429b85d Remove two un-needed type casts 2016-05-28 16:35:45 +10:00
6554a8d63c servlistgui: Show invalid nick/user on open
It is possible to have an invalid config from a previous upgrade

Fixes #1715
2016-05-16 08:51:18 -04:00
d32aa65bc7 Ignore VS2015 crap. 2016-05-12 22:21:26 -07:00
3c329727c7 servlist: Default to UTF-8 on PTNet
Fixes #1697
2016-05-03 20:16:49 -04:00
e223840fa6 Bump version to 2.12.1 2016-05-01 20:52:05 +02:00
ca6411c591 Bump version to 2.12.1 2016-05-01 14:34:46 -04:00
823ef320a5 lua: Use luaL_checkinteger 2016-04-27 14:55:04 -04:00
fe9da9314c Fixed warning from MSVC that not all branches return a value. 2016-04-27 11:39:29 -07:00
1c73f84f3a installer project needs to depend on lua plugin project. 2016-04-27 11:34:48 -07:00
d995272922 win32: Install doat by default 2016-04-26 12:08:11 -04:00
5b097f560d More minor scrollback loading improvements 2016-04-26 12:06:28 -04:00
f06a38c384 configure: Bundle ax_python_devel.m4
Upstream broke API so older distributions have broken system versions

Fixes #1632
2016-04-19 14:07:27 -04:00
44aa999598 Fix challengeauth lower casing username 2016-04-13 18:47:51 -04:00
54c6418d61 Support for older libnotify versions 2016-04-10 21:22:12 -04:00
bd358dd570 win32: Reflect lua path changes in gtk-win32 2016-04-09 12:18:02 -07:00
529ae4cc89 lua: Fix explicit braces warning 2016-04-07 19:02:38 -04:00
5b05271e4c win32: Install lgi with lua plugin 2016-04-07 18:27:43 -07:00
d11b7f258c lua: Minor formating cleanup 2016-04-07 18:27:40 -07:00
0694cb9045 lua: More consistency with Python plugin 2016-04-07 18:27:39 -07:00
8099f23bdf travis: Build on Ubuntu 14.04 2016-04-07 18:27:38 -07:00
a3e1a287ac Bump glib requirement to 2.34
This is still rather old but does drop Ubuntu 12.04 support.
2016-04-07 18:27:37 -07:00
f501e948ae lua: Some more refactoring. Fix unload hook in the interpreter. 2016-04-07 18:27:30 -07:00
ba6a1190cd lua: More missing statics 2016-04-07 18:27:30 -07:00
4abcd53044 lua: Make better use of GLib
- Use GPtrArray everywhere
- Remove unessary NULL checks
- Make use of g_clear macros
- Use g_str_has_suffix
2016-04-07 18:27:29 -07:00
2fe52bbf58 lua: Bump version and update copyright year. 2016-04-07 18:27:21 -07:00
5998696c2a lua: Use glib allocators 2016-04-07 18:27:13 -07:00
bc9a59d264 lua: Replace some pushnumbers with pushintegers 2016-04-07 18:27:07 -07:00
5699bf9e65 lua: Error if luaL_newstate returns NULL 2016-04-07 18:26:58 -07:00
c4c1c64f00 travis: Build with Lua 2016-04-07 18:26:47 -07:00
fb7f27fcdd lua: Build on win32 2016-04-03 12:02:04 -07:00
2e2b895ebe lua: Don't used mixed declarations
This requires a lot more cleanup
2016-04-03 11:04:48 -04:00
2e478f1b5a Import lua plugin
Written by @mniip
2016-04-03 10:30:01 -04:00
a77c6df7e2 configure: Place auxiliary files in own dir 2016-03-31 08:01:06 -04:00
19c4adf8ba autogen: Don't copy all files by default 2016-03-31 07:51:08 -04:00
1f48f9dd6f Increase default size of some util windows 2016-03-31 07:21:02 -04:00
b7373f4ddc unix: Open urls in existing instance if supported 2016-03-31 07:02:23 -04:00
9402a31111 Improve help message for /close
Closes #1397
2016-03-30 08:58:25 -04:00
58fb36ee34 Fix warning
Fixes #1533
2016-03-30 08:48:23 -04:00
f656569eb9 plugin: Fix padding for chanopts in channel flags
This is an API break but it didn't really work
properly before anyway.

Fixes #1666
2016-03-30 08:28:51 -04:00
0635e91dd6 Don't flush the chanopt_list when saving it
Closes #1665
Fixes #1134
2016-03-30 08:11:07 -04:00
5f2d6a3c11 servlistgui: Removes leading and trailing whitespace from hostnames
Closes #1651
2016-03-30 08:07:42 -04:00
356241bdfb url: Add support for ts3server:// uris
Closes #1659
2016-03-30 08:05:32 -04:00
dce6a7612a plugingui: Use full path when unloading/reloading plugins
Mentioned in mniip/hexchat-lua#5
2016-03-29 12:19:19 -04:00
60b3b43f3e Translate chanopt output 2016-03-28 21:31:35 -04:00
6cbcc73a79 chanopt: Ensure values are 0-2
If chanopt was set to any other value it would overwrite
other values in the plugin API for channel flags.
2016-03-28 21:19:39 -04:00
edcd9af47f installer: Use https for Python downloads 2016-03-28 05:10:08 -04:00
dd080fa6f3 Fix building on old glib 2016-03-28 01:36:02 -04:00
bcb4eec754 identd: Fix ipv6 support on Windows 2016-03-28 01:28:56 -04:00
795e97f428 identd: Fix respecting USE_GLOBAL network flag 2016-03-28 00:31:00 -04:00
77ac0863f8 identd: Respond for INVALID-PORT and NO-USER errors 2016-03-27 23:44:05 -04:00
963ba2bf2d identd: Ensure connection is closed 2016-03-27 23:18:24 -04:00
c280029436 servlist: Update DALnet default login type 2016-03-25 18:44:16 -04:00
47b357b2e1 Only intercept QuakeNet challengeauth when enabled 2016-03-24 15:42:49 -04:00
c1a94e2879 servlist: Add GlobalGamers
Closes #1334
2016-03-20 20:47:52 -04:00
c874a9525c Bump version to 2.12.0 2016-03-12 16:21:52 +01:00
fc20786a5e Bump version to 2.12.0 2016-03-12 03:04:42 -05:00
d48f31191f Updated location of GTK theme engines in 2.24.30. 2016-03-11 21:00:06 -08:00
7c078db879 Fix loading encoding from network list on connect
- Fix setting new encoding when switching networks
- Ignore ports when looking for network by hostname
- Only set UTF-8 when nothing explicitly set

Fixes #1628
2016-03-11 02:15:42 -05:00
ebb0fd6905 identd: Fix leak 2016-03-09 00:38:56 -05:00
ed029357d1 sysinfo: Clean up ifdefs and handle unsupported CPU
Mentioned in #1624
2016-03-06 23:10:04 -05:00
10fa3b1878 build: Keep macros newer than Ubuntu...
Mostly for travis
2016-03-06 19:09:23 -05:00
98b0186feb build: Don't store autoconf-archive macros in repo
The release tarballs will still have them
2016-03-06 18:54:07 -05:00
35254fa6eb win32: Update Python to 3.5 2016-03-06 18:27:59 -05:00
6706b23a0b build: Use more secure flags 2016-03-06 18:27:59 -05:00
df36f88e88 Update translations 2016-02-19 09:54:19 -05:00
94a7fbae02 Fix possible overflow 2016-02-19 09:41:24 -05:00
bae1ebce2f Update network list
- Remove dead ones
- Use SASL and TLS when possible
- Make note of self-signed ones
- Add LibraIRC

Closes #1039
Closes #1512
Closes #1473
2016-02-19 09:39:16 -05:00
50463ca832 Properly handle missing SSL certificate
According to OpenSSL document
(https://www.openssl.org/docs/manmaster/ssl/SSL_get_verify_result.html),
when using SSL_get_verify_result(), the existence of certificate
needs to be checked. However, in current code, it does not.
Therefore, certificate existence check is required for correctly
handling the exception.

Closes #1549
2016-02-19 07:26:50 -05:00
0826e7d353 python: Handle get_info('win_ptr') 2016-02-18 12:59:02 -05:00
aab881fda2 Fix strict prototype warnings 2016-02-18 08:57:22 -05:00
05385f2479 build: Enable more warnings/errors 2016-02-18 08:54:19 -05:00
650bddcfd1 Improve scrollback file handling
- Properly use filesystem encoding
- Validate utf8 when loading (hopefully fixing crashes)
- Use Gio
- Handle Windows line endings
- Remove dead code
- Fix respecting max length of scrollback files
2016-01-31 15:31:15 -05:00
089fe95a42 perl: Fixed warning about duplicate definition of bool. 2016-01-30 19:57:12 -08:00
4362085847 Remove DH-AES/DH-BLOWFISH mechanisms and misc cleanup
- AES and Blowfish mechanisms are deemed insecure and servers
  have removed support for them
- Remove attempts to retry since we only support one mech
- Handle SASL 3.2's new syntax for supported mechs
2016-01-29 17:41:08 -05:00
6b62c4738d Add support for twitch.tv/membership 2016-01-29 15:28:34 -05:00
8da205b0a8 Add support for chghost 2016-01-29 15:28:33 -05:00
981d55e84c Add support for CAP 3.2 2016-01-29 15:28:33 -05:00
35d238ad3a Properly handle a few args optionally starting with :
This is a pervasive problem that will likely show up in
other events also.

Closes #1460
2016-01-28 22:49:23 -05:00
2c8729becd Handle PING and AUTHENTICATE with a prefix
Not the ideal solution..

Closes #1566
2016-01-28 22:38:36 -05:00
35f97b65c1 Sanitize server name for log files
It could contain invalid chars or log to an arbitrary directory
2016-01-28 16:22:04 -05:00
a2c2abd60a Fix missed comma 2016-01-28 16:17:30 -05:00
7a85c9160d Add support for cap-notify 2016-01-28 16:02:04 -05:00
4e061a43b3 Clean up handling CAP LS 2016-01-28 15:18:15 -05:00
5c534ac344 Fix leaks 2016-01-25 23:36:06 -05:00
ea9e8d353b identd: Use GDataInputStream 2016-01-25 22:53:42 -05:00
f14ad5e9dd Add identd to preferences 2016-01-25 22:51:11 -05:00
2226363fd0 Add ctags files to gitignore 2016-01-25 20:39:36 -05:00
5dafa60433 Rename identd variable name 2016-01-25 20:37:53 -05:00
971e5cf4fe Emit word_click even as long as user is not selecting any text when releasing button
This fixes the need to do pixel-perfect clicks to open links in chat
2016-01-10 12:37:30 -08:00
edd57fdc86 .travis.yml: use container-based infrastructure 2015-12-07 18:24:58 -05:00
eab580408c installer: Fixed VS2015 CRT DLL name. 2015-11-26 00:05:38 -08:00
26d3461f46 Make tab completion prefer other people
If you are talking with someone else with the same prefix as your
own nickname, and attempt to tab complete theirs. It will complete
your own nickname before theirs if you talked more recently. Since
people rarely intend to highlight themselves, this improves the
logic to complete your own name only as a last resort.
2015-11-14 23:22:57 -05:00
295061f461 Fix incorrect const usage 2015-11-09 14:51:48 -05:00
0bd15d435a Fix freeing string from g_get_user_name()
Fixes #1540
2015-11-09 14:41:42 -05:00
c8539b93fe xtext: Fix overflow on long lines
xtext keeps a static buffer and uses it for various things
and asserts that every text entry is < 4096. It does
this check on gtk_xtext_append*() except it does the check only on
the right half of text when indent is enabled.

This overflow caused corruption in the xtext struct
changing the url check functions making hovering
with the mouse do 'undefined' things.

In the long term this should be removed for a dynamically
allocated buffer so no arbitrary size limit exists and
text gets cut off.

Fixes #1465
Fixes #1186
Fixes #1206
2015-10-30 01:22:13 -04:00
1e914347d7 configure: Default to generating xz-tarballs only 2015-10-17 09:43:49 +02:00
66eebea2c3 build: Don't dist resources.h resources.c 2015-10-17 09:26:23 +02:00
9e2d5dae5e build: Determine resources-files once instead of three times 2015-10-17 09:13:29 +02:00
b8e7dfa4ba build: Let 'make dist' do a better job 2015-10-16 17:25:01 +02:00
1d8dd50455 win32: Fix installer 2015-10-12 19:26:28 +02:00
7f1ee9dad0 common: Moved some functions over from plugins/sysinfo that are useful for the rest of HC.
OS name, CPU, GPU, HDD info and build arch are now all available within core HC. OS name and build arch are used in the About dialog.
2015-10-12 19:20:53 +02:00
be5e2b9566 win32: Update Visual Studio 2015 redist links in installer 2015-10-11 16:14:23 +02:00
e40fbee772 win32: Add Windows 10 ID to manifest 2015-10-11 16:13:15 +02:00
7247c24e98 readme.md: Update jenkins links 2015-10-11 16:12:37 +02:00
f7e3d3f32c Use VS 2015 2015-10-10 16:14:12 -07:00
671a838b52 fe-gtk: Use manual registration for resources. 2015-10-10 16:14:07 -07:00
6ca29b2eb4 Update logo .ico with new shadow and standard sizes
hexchat.ico now contains all the sizes Windows uses.
2015-10-09 12:52:15 +02:00
15efdd5f2b Update logo SVG to smaller, solid shadow 2015-10-09 12:51:33 +02:00
599f5c7b29 win32: Don't rely on CWD for portable-mode check
Also cache the result...

Fixes #1500
2015-10-05 15:06:57 -04:00
fad8f93ad8 configure: Clean up Python checking
This fixes requiring to add a version every time
a new release comes out...
2015-09-30 03:55:42 -04:00
78486b49d5 Merge pull request #1162 from obskyr/master
Optimized and improved logo SVGs and PNGs.
2015-09-21 12:50:06 -04:00
9c5f577002 Don't use SASL on an unknown network
https://bugzilla.redhat.com/show_bug.cgi?id=1262763
2015-09-14 09:33:06 -04:00
dbad9285b8 TLS: Set SNI hostname before connect 2015-09-11 01:48:29 -04:00
73636a00b5 Removed SeionIRC from the serverlist
I'm removing Seion from the serverlist because it's now mostly a defunct network. One of the servers is completely broken in regards to ipv6 connectivity and SSL, the webchat server hasn't worked for months, and I shut down my server (fox.seion.us) a few days ago.
2015-09-05 13:58:34 +01:00
e7003ef9c6 Improve /mode behavior
This fixes /mode using the name of invalid contexts
and also adds some documentation to what is happening.

In the end though it still must guess between modes
and nicks if ran in a valid context.

Fixes #1470
2015-09-03 02:35:13 -04:00
9664b1b7e3 Fix select regression.
Fix selection when part of the selected text is above/below a border.
Also, fix problems uncovered by static analysis.

Fixes #1261.
2015-08-20 00:23:17 +02:00
422cce6f70 Fix crash in DBus plugin
Closes #1438
2015-08-02 08:06:21 -04:00
afd2135393 Fix possible overflow
gtk_entry_get_text_length() returns len in utf8
chars not in bytes
2015-06-04 04:02:33 -04:00
94ef0fd294 Fix warning 2015-05-28 14:13:34 -04:00
ebe1f824a7 Fix mnemonic collision
Alt+a is used for mark away in the menus and also
highlight all in the search box, change the latter to
alt+h.

Fixes #1008
https://bugzilla.redhat.com/show_bug.cgi?id=1173082
2015-05-27 13:42:59 -04:00
f7bea16e37 xtext: Fix poor performance with nick indent enabled
This fixes xtext re-rendering multiple times when the
indent width is not sufficient

Fixes #1364
Closes #1367
2015-05-18 06:31:00 -04:00
ff9c0dbd5e Update alternative font list 2015-05-08 00:02:09 +02:00
29321c8660 Fixed pango attributes not being applied in some cases.
gtk_entry_get_text_length returns the number of utf-8 characters in the GtkEntry, not the number of bytes in its text.
2015-04-25 16:51:29 -07:00
0b40146b85 Disable pango attributes on sexy entry while it contains preedit text.
Fixes #1360
2015-04-24 19:20:48 -07:00
9b2c560519 Remove unused file 2015-04-23 01:07:31 -04:00
3675302930 travis: But it needs intltool 2015-04-22 23:28:51 -04:00
925570aab1 travis: No longer need gnome-common 2015-04-22 23:24:19 -04:00
498f53b96a travis: No longer need to run ./configure 2015-04-22 23:22:06 -04:00
5263887ac3 configure: Simplify perl tests 2015-04-22 23:14:42 -04:00
73d865b243 configure: Better handling of missing pkgconfig 2015-04-22 22:54:30 -04:00
a3c257bdb4 configure: Consistently use autoconf macros for conditionals 2015-04-22 22:10:52 -04:00
6ad9419693 configure: Target versions of Ubuntu 10.04
travis-ci uses it still...
2015-04-21 23:07:28 -04:00
c5aa91a836 configure: Replace --enable-minimial-flags with standard --disable-debug 2015-04-21 19:16:41 -04:00
b10f94d5f6 configure: Some modernization 2015-04-21 19:16:11 -04:00
9a98de1f65 Remove requirement on gnome-common
I'm sure that will make a few users happy..
2015-04-21 18:44:30 -04:00
7363bc03f2 Remove r from mode buttons
No network can agree on what mode r actually
means so we can't have nice things.

Closes #1287
2015-04-21 16:07:12 -04:00
78e51a4f3f Fix mode button text being cut off
This no longer restricts their width and uses
monospace fonts so they are still the same
width.

Closes #1356
Fixes #1354
2015-04-21 15:35:15 -04:00
174db0eb7f winamp: More code cleanup 2015-04-14 10:02:27 -04:00
f64b61a1b9 winamp: Fix project file
Broken by 72d7f64f8b
2015-04-14 05:41:02 -04:00
a8392c7f95 winamp: Clean up formatting 2015-04-13 16:25:37 -04:00
72d7f64f8b winamp: Fix utf8 song titles
Fixes #1350
2015-04-13 16:25:36 -04:00
c86389f99b Fix possible overflow in pluginpref
Closes #1265
2015-04-07 06:38:59 -04:00
66f2f3a84a Improve /AWAY help message
Closes #1343
2015-04-05 00:54:52 -04:00
f8c7ea3672 Fix some text event descriptions 2015-04-04 04:29:39 -04:00
e313a82ab4 sysinfo: Strip trailing space on video card 2015-03-20 05:38:22 -04:00
9024a5c71b Fix typo 2015-03-20 05:37:27 -04:00
f03b6314b4 Remove unused files 2015-03-20 05:36:51 -04:00
ae2e5ab092 Fix conflicting type in header
gsize and size_t are not the same thing
2015-03-20 04:58:00 -04:00
167eb11ea7 Fixup 455fa24d
-Wformat=2 includes format-nonliteral
2015-03-19 17:21:41 -04:00
1cc06f9301 Fixup dc69f24ae
It still has to be in hex...
2015-03-19 16:47:37 -04:00
455fa24d63 configure: Remove a warning
Used everywhere needs to be fixed
2015-03-19 16:36:43 -04:00
dc69f24ae5 Use correct type for colors 2015-03-19 16:30:03 -04:00
b4906f3d23 Fix warnings 2015-03-19 16:06:49 -04:00
4e338a2b70 configure: Clean up testing warnings and add more 2015-03-19 16:04:04 -04:00
98fefcd162 Switch from mozilla-build to msys2. 2015-03-15 19:06:29 -07:00
fb422732f2 libenchant_win8 needs to depend on common to be able to use config.h 2015-03-08 12:47:03 -07:00
36a8ba126c Fix incorrect timestamp in scrollback with server-time
Fixes #1148
2015-03-02 19:58:27 +01:00
658f30ec43 configure: Don't depend on gtk-2.0.m4
It doesn't really add much value and it
is possible to build fetext without gtk installed
2015-03-01 08:47:35 -05:00
749e5b20da Make use of g_path_is_absolute()
No reason to roll our own.. in multiple places
2015-02-28 07:24:49 -05:00
d78db5070a Consistently use g_fopen()
It handles the correct encoding on win32
2015-02-28 06:47:40 -05:00
a5584c6b57 Clean up some ifdefs
Thankfully somebody already made a define for this, they
just never used it...
2015-02-28 06:43:33 -05:00
97bf0de016 Make Preferences option in plugin tray menu available on all platforms. 2015-02-27 17:33:33 -08:00
b6c4cfa2a3 Fixed undefined behavior causing hover highlights on the plugin tray menu not working.
Fixes #602
2015-02-27 17:24:57 -08:00
ec12871e60 Write scrollback as binary on win32
Proper fix for b66edd3
This issue likely applies elsewhere in HexChat
2015-02-27 16:20:09 -05:00
0a29313fff Remove unused win32 files 2015-02-27 15:06:45 -05:00
b009084a52 Don't install spelling dicts if win8+ 2015-02-22 00:20:26 -05:00
7e7e87600e More type issues/warnings 2015-02-21 21:01:14 -05:00
c36d4859d7 Fix type mismatch 2015-02-21 20:52:43 -05:00
c1d06c7d63 Fixed cast warning, use of uninitialized buffer and whitespace. 2015-02-21 17:28:56 -08:00
5e3355a6c3 Unify sysinfo plugins and add osx support
This does remove the net* commands from the
Unix version that may return at a later date
with OSX and Windows support.

This commit also makes numerious other changes
such as code cleanup, reformatting, etc.

Closes #829
2015-02-21 20:09:15 -05:00
363321dc33 Fixed installer not actually bundling libenchant_win8.dll because it wasn't made to depend on the project. 2015-02-21 03:17:44 -08:00
4d44c17939 Removed unused variables left behind from bbb81af 2015-02-21 03:14:32 -08:00
5b24c60def Win8+ native spell checking requires compiling with Win8 target.
Win8-specific features are still loaded dynamically, so HC still works the same on W7.
2015-02-21 03:12:27 -08:00
96026b82c7 Add support for native win8+ spell checking 2015-02-21 05:54:58 -05:00
e42da22716 Revert "xtext: Unselect old selection on button press" - breaks clicking URLs to open them.
This reverts commit 8ca96d7ea3.
2015-02-20 02:54:41 -08:00
0a8248578f Remove compiled date from about
Distros like Debian depend on repeated builds
having the same results which this breaks.

Since this provides no real value just
remove it.
2015-02-19 21:00:24 -05:00
c87f559334 Fix distfiles 2015-02-15 15:20:38 -05:00
8ca96d7ea3 xtext: Unselect old selection on button press
Fixes #943
Closes #1293
2015-02-15 13:17:55 -05:00
bbb81af550 Removed unnecessary Windows-only code for seeding openssl's RNG.
openssl seeds itself with CryptGenRandom on Windows in the same manner as /dev/(u)random on other OSes.
2015-02-14 00:31:41 -08:00
a22816fbbd Don't try to disable compression if openssl hasn't been compiled with compression support.
The function is still defined in openssl/ssl.h but not in the actual library, so it cannot be linked to.
2015-02-14 00:30:00 -08:00
b6877ccf5c win32: Use WinSparkle for handling updates
Fixes #1282
2015-02-12 19:11:46 -05:00
7063406d6c Remove input_balloon_time setting
This setting doesn't work on most platforms
including some notification daemons on linux.

Where it does work I think it is bad behavior
to default overriding their defaults anyway.

It's most valuable use was likely win32
tray balloons which no longer exist.
2015-02-11 17:58:44 -05:00
9858784eb6 Better project files.
- Output directly to rel\ instead of to bin\ and then copying files over.
- Deduped Win32 vs x64 configs
- Moved some common properties to hexchat.props
- All build intermediates (except htm's intermediates) are no longer emitted in the source directory
2015-02-11 10:01:29 -08:00
7e4a585611 win32: Use https for installer downloads
Fixes #1268
2015-02-11 07:59:48 -05:00
5a87d814cf Call CoInitialize, CoInitializeSecurity and CoUninitialize from the main process, not from a DLL.
They're process-level functions and aren't meant to be called from DLLs. CoInitSecurity in particular fails with RPC_E_TOO_LATE even if no other call to CoCreateInstance has been made yet.

Fixes sysinfo's WMI calls on Windows 8.1 and above.
2015-02-10 22:14:22 -08:00
ac54a2ed45 Allow reordering some dialogs with dnd
This sadly can't work everywhere since they all
have entirely different ways of saving the data..

Related to #1288
2015-02-08 01:51:22 -05:00
296fbaf94f Fix automake error 2015-02-04 21:49:58 -05:00
75c022c49f Implement OSX notification backend 2015-02-04 21:41:10 -05:00
f4f27e438b Implement windows 8.1+ notifications
This splits notifications up into multiple backends
currently only libnotify on unix and win8 toasts.

The win8 backend was originally written by @leeter
though heavily modified.
2015-02-04 20:24:53 -05:00
a216ed1df9 Partial fix for Windows 10 detection 2015-02-04 04:48:44 -08:00
afee9fd42b Only send utf8 string in Key Press event
Fixes #869
2015-02-02 02:56:08 -05:00
60fa7efbc8 Fix logging hostname of queries
- Move query topic setting from frontend (where its too late)
- Respect chanopts for logging hostname
- Open query logfile *after* chanopts loaded
2015-02-01 01:47:50 -05:00
dc9a7d3a59 sysinfo: Fix braindead logic for stripping spaces from the end of the OS name. 2015-01-31 21:29:10 -08:00
1d83610341 Save iconv converters for input and output in the server.
These are then used with g_convert_with_iconv instead of making it create a new iconv converter every time for the given from-to-encoding pairs.
2015-01-31 00:52:31 -08:00
5dde0d7c6d Also verify encoding read from servlist.conf 2015-01-31 00:52:30 -08:00
9968bb31a4 sysinfo: Strip spaces from the end of the OS name, if any, and ensure a space between name and arch. 2015-01-31 00:52:30 -08:00
5fe2dda146 ssl: Remove unused server code 2015-01-30 21:25:41 -05:00
85fd6f525e Add default keybinding for shift+tab (Previous tab complete) 2015-01-26 17:53:33 -05:00
e5b65bbd69 servlist: Clean up specifying ssl for network 2015-01-20 03:03:45 -05:00
a838cd9c07 servlist: Various changes
- Remove IRCNode
- Replace Techmans with Techtronix
- Remove unecessary ports
- Consistently use round-robin over specific servers
- Don't use mixed-case hostnames

Closes #1244
2015-01-20 02:43:16 -05:00
02470dffa5 servlist: Add AthemeNet and remove its old networks
Closes #1272
2015-01-19 11:31:42 -05:00
c5bbf75f5e Removed one leftover check for server->encoding against NULL. 2015-01-18 02:55:32 -08:00
b783c827c8 Fixed incorrect comment on server->encoding. 2015-01-18 02:27:38 -08:00
d1897c1602 Remove "System default" encoding. The default for new servers is UTF-8. 2015-01-18 02:10:05 -08:00
6f8a6e66cc Detect unknown server encodings and set to UTF-8. 2015-01-18 02:10:05 -08:00
5749c53484 Server line text-encoding-related fixes.
- Handle server lines that contain sequences which are invalid in the server encoding. Previously, these would cause the whole line to be interpreted in ISO-8859-1, but now they're simply replaced with an appropriate replacement character.

- Removed prefs.utf8_locale.

- Change default server encoding from system locale to UTF-8.

- Always populate server->encoding with a non-null value - UTF-8.

Fixes #1198
2015-01-18 02:10:04 -08:00
5569205d15 Add CP1252 as an available server encoding for Windows-1252 and ISO-8859-1 networks. 2015-01-18 02:10:04 -08:00
2e76a4e477 Removed CP1255-specific handling of server lines.
GLib's API is good enough now.
2015-01-18 02:10:03 -08:00
ee17ec6b4f Removed legacy "IRC" encoding. 2015-01-18 02:10:03 -08:00
5a56f9ea01 Removed unimplemented, unused function. 2015-01-14 23:42:21 -08:00
e400ed2855 Fixed bad const-cast. 2015-01-14 21:38:19 -08:00
1d316710ed Don't crash if the log file can't be opened.
Found in #1269
2015-01-14 16:29:03 -08:00
aab243592f Workaround crash when timestamp format is blank
Somebody else can fix the numerous assumptions elsewhere
2015-01-13 04:14:32 -05:00
13db2011e3 Fix leak
From libressl-portable/openbsd@20de8a4923
2015-01-09 17:25:45 -05:00
7739c99f3f Update alternative font list 2015-01-07 22:46:37 +01:00
99f74e8d94 Also print the command that wasn't recognized. 2015-01-07 13:42:42 -08:00
5ca87b3c8d identd: Fix unknown command when service fails to start 2015-01-07 16:21:46 -05:00
62df565190 sysinfo: Also show HDD information. 2015-01-05 03:57:59 -08:00
4f08b0b386 sysinfo: Don't confuse build architecture with CPU architecture. 2015-01-04 16:54:15 -08:00
5b8cc683f3 sysinfo: Refactored out individual WMI parsing methods. 2015-01-04 15:08:45 -08:00
e758da5d28 Bring the sysinfo plugin to the 21st century.
- Support multiple CPUs and graphics adapters in the WMI responses.
- Query max CPU frequency from WMI instead of registry.
- Support uptimes longer than 50 days.
- Don't report using /ME in notice and server notice tabs.
- Convert to C
2015-01-03 15:26:05 -08:00
16d1fccf61 Fix disabling identd server 2015-01-03 18:00:37 -05:00
086d4e3962 python: Use Py_RETURN_NONE macro 2014-12-31 15:11:47 -05:00
9bd7405502 Remove last remnants of GtkClists
These were removed a while ago
2014-12-31 11:57:27 -05:00
2a28289314 Don't return 0 in place of NULL 2014-12-31 11:31:17 -05:00
112632bb4e Fix some possible null-deref warnings 2014-12-31 11:12:43 -05:00
c5016e390f Show correct number of channels/dialogs when closing server tab 2014-12-31 10:50:13 -05:00
63bb87fc93 Don't select join #hexchat by default in join dialog
Have to go even one step further removed so users don't
accidentally join
2014-12-31 10:44:36 -05:00
1fa4a000e7 Fix some unused warnings 2014-12-31 10:24:51 -05:00
448cc962cd Python: Fix overflow and code-cleanup 2014-12-31 09:50:03 -05:00
6ef7298870 Remove unnecessary use of void* 2014-12-31 03:56:36 -05:00
9f7444baa2 Move userlist sorting to frontend
This Fixes possible crashes when the two
usertrees get out of sync and a double free occurs.

Also now requires restart to change sort orders.

Fixes #1252
Fixes #818 (probably)
2014-12-31 03:56:36 -05:00
fef580ed7f Rewrite identd
- Use gio (which is cross platform)
- Properly support multiple users
- Allow configuring port
- Allow other plugins overriding
2014-12-30 06:35:42 -05:00
3bb717a3b5 Fix windows build
Introduced 1b2bee37e
2014-12-29 02:08:42 -05:00
5beaf15f21 Remove option to use socks5 library
This was always disabled by default and is not required
for the current socks support. I am not even sure this
library is packaged by any distro?
2014-12-28 22:29:06 -05:00
1b2bee37e4 Remove option to disable ipv6
It has been default for a while, is the only tested option,
and will only get more common.
2014-12-28 22:29:06 -05:00
9cb73f839f Remove MSProxy support
It's not enabled anywhere, certainly not maintained
2014-12-28 13:28:19 -05:00
330e31c70f Fix overflow 2014-12-28 12:43:53 -05:00
cbaa04905f Fix warning 2014-12-28 12:38:19 -05:00
14d3a03f41 Fix leak in make-te
This doesn't really matter but it shuts up AddressSanitizer
2014-12-28 08:14:05 -05:00
95febd978c Fix building as c89 2014-12-28 06:47:23 -05:00
3f855f07f5 Use glib for allocations in all plugins
Continuation of 83032b1aa
2014-12-28 06:47:07 -05:00
83032b1aa3 Use glib for all allocations
- Removes need to check for malloc failure
- Removes need for NULL checks on free
- Adds checks for integer overflows
- Removes some extra memset calls
- Removes chance of mixing libc and glib malloc/free
2014-12-28 06:44:44 -05:00
c4cb1b25ec Fixup: Detect urls with unicode symbols
missed one in 77ecaa6093
2014-12-28 00:40:51 -05:00
77ecaa6093 Detect urls with unicode symbols
Fixes #1250
2014-12-28 00:29:58 -05:00
664f6bf1e7 configure: Set glib min requirement to 2.32
and warn when using newer APIs
2014-12-17 18:21:10 -05:00
aeb5d15871 More consistently include config.h 2014-12-17 18:21:10 -05:00
76c2cfebc3 Don't require glib 2.40 2014-12-15 15:34:12 -05:00
addefa9ef1 fishlim: Handle server-time 2014-12-15 15:08:00 -05:00
7769bc99fe fishlim: Use proper filesystem encoding for files 2014-12-15 15:08:00 -05:00
ce396b3ddb fishlim: Use standard keyfile save function 2014-12-15 15:08:00 -05:00
ebe0ad4cd5 fishlim: Strip whitespace when deleting keys
This fixes a personal annoyance when you tab complete
a channel to delete
2014-12-15 15:07:43 -05:00
bdb5c3eb9d fishlim: Use hexchat_nickcmp() 2014-12-15 15:06:48 -05:00
c54a0c6db9 fishlim: Improve string handling 2014-12-15 15:06:48 -05:00
46061f4f3c Remove some unnecessary if statements 2014-12-15 14:51:07 -05:00
ec7a0d6e13 Fixed some more signed-unsigned-comparison warnings. 2014-12-15 10:25:28 -08:00
a86b03e939 Remove unused header 2014-12-15 11:07:47 -05:00
35fd47da55 Add patch from cygwin 2014-12-15 11:07:47 -05:00
2b1396add3 Update .gitignore 2014-12-15 11:07:47 -05:00
0e4164ad0c configure: Improve various build flags
- Store openssl flags in own vars
- Share some common flags for plugins
- Fix building plugins on win32
- Store all glib flags in one var
- Don't link against every lib for each plugin
- Don't hardcode ldflags for sysinfo
2014-12-15 11:07:46 -05:00
94568bc517 checksum: Use glib for io/checksum and misc fixes
- Fixes support for large files.
- Fixes filenames not being passed in the filename encoding.
- Drops openssl dependency.
- Code cleanup.
- Fix 'unknown command' warning.
2014-12-15 10:40:15 -05:00
226d54c90d Fix use after free 2014-12-14 19:35:27 -05:00
7e4c482737 travis: Build with static analysis 2014-12-14 18:20:50 -05:00
ac01ba9cb0 perl: Fixed warning about implicitly casting the time_t returned from hexchat_list_time() to an NV. 2014-12-14 13:31:19 -08:00
a537fa3ca7 sysinfo: Simplify remove_leading_whitespace()
Also fixes a possible overflow
2014-12-11 14:17:12 -05:00
f614a3c311 Fix possible overflow when using /menu 2014-12-11 13:49:37 -05:00
d6e3f740bc Fix some leaks 2014-12-11 12:13:57 -05:00
72f82d096c Fix some warnings in xsys
- Remove unused code
- Fix leak
2014-12-11 10:05:05 -05:00
74ff67acd3 Create configuration option to control middle click tab close.
Some might argue that this shouldn't be able to be configured as it is "common" behaviour
in other programs such as web browsers, but for me it is an annoyance because for 15
years this has not been the behaviour of X-Chat.
Quite simply, this creates a configuration option for 537fb856, as unobtrusively as
possible, under the channel switcher preferences tab.

Closes #1232
2014-12-10 15:09:04 -05:00
6aafc8e51d Fix chanopts not saving if /quit before exit
This is the C fix, unfortunately a proper fix, e.g.
 removing the dependency on session_name all together is a much vaster
 refactor outside the scope of this bugfix.

Closes #1111
2014-12-10 14:40:42 -05:00
10246f121a Fix unsafe string handling in configs
Also fixes 2 leaks
2014-12-10 09:32:16 -05:00
025152ee53 Fix unused warning 2014-12-10 09:00:29 -05:00
58e871696b Fix typo 2014-12-10 09:00:04 -05:00
0ba8b922a2 Fix tab completing with no completion char 2014-12-09 23:03:44 -05:00
b296839538 Respect servers chantypes and nickprefixes when tab completing
Closes #441
2014-12-09 05:45:50 -05:00
5fb21a04ad Use gboolean for bools 2014-12-09 05:45:01 -05:00
fda692d250 Fix various unsafe string handling in fkeys
Also removes the 2048 input byte limit
And fixes utf8 completion chars in some cases
2014-12-09 05:30:35 -05:00
99a1fff590 Removed unused hexchat_filename_*_utf8 macros. 2014-12-08 21:30:02 -08:00
65c8494698 Removed some unnecessary casts. 2014-12-08 21:25:00 -08:00
2b94011fdc Removed some commented-out code. 2014-12-08 21:25:00 -08:00
2da5308fd2 Fixed leak of filename string. 2014-12-08 21:25:00 -08:00
c1831cb19d Minor tidying up 2014-12-08 21:24:59 -08:00
65da34f19e Removed some unnecessary null-checks for calls to g_free and g_strfreev 2014-12-08 21:24:59 -08:00
b7afcc3632 Don't leak filename_fs on errors. 2014-12-08 21:24:58 -08:00
73cd6487d0 Update travis notification format 2014-12-06 17:28:41 -05:00
5152040c17 Always use 64-bit filesize and file offsets in DCC.
Based on LRN's commit for replacing stat with GFileInfo https://github.com/hexchat/hexchat/commit/32008bb

Fixes #382
2014-12-06 14:02:45 -08:00
985ea610e6 Store timer hook's timeout as milliseconds. 2014-12-04 04:06:38 -08:00
8062bce835 Fix some obvious type warnings. 2014-12-04 04:06:38 -08:00
3fbe5b876e Add missing dependencies for glib's g_spawn on windows 2014-12-02 22:12:48 +01:00
e38f00775f configure: Add option to run clang static analysis 2014-12-02 01:06:25 -05:00
05a6097dc6 Fix copying timestamp with server-time and indent nicks off 2014-11-30 22:33:30 -05:00
85557f2416 Fix duplicate timestamps on selection
Fixes #1226
2014-11-30 22:27:00 -05:00
0019af675a Fix compilation on Windows 2014-11-30 20:41:13 +01:00
f03023297b Fix handling --cfgdir
Fixes #1225
2014-11-29 08:31:35 -05:00
c92b247878 Fix building against openssl 0.9.8
Closes #1221
2014-11-26 08:15:34 -05:00
232096801b Bump updater version to 2.10.2 2014-11-25 10:37:00 -08:00
c0769397d5 Fix possible crash in SASL Blowfish mech 2014-11-22 20:56:15 -05:00
c9b63f7f9b ssl: Validate hostnames
Closes #524
2014-11-21 23:19:30 -05:00
ebaaf466bf ssl: Use more secure options
This disables ssl 2/3
2014-11-05 02:17:34 -05:00
4b6215051f ssl: Don't use global openssl context
Fixes #789
2014-11-05 01:27:39 -05:00
f83d78dd28 Warning cleanup
- ignoring const
- declarations after statements
- some C files didnt include own headers (risking them getting out of sync)

Closes #1064
2014-11-02 14:41:20 -05:00
9fb4eb5107 configure: Fix checking for perl
Closes #1196
Fixes #1197
2014-10-29 17:28:04 -04:00
3c89de48a8 Remove old config migration
Fixes #1194
2014-10-25 06:50:02 -04:00
6653582f0a Fix textbox not scrolling to to bottom on resize
Set buf->scrollbar_down conditionally when vertically resizing text window
If resize to enlarge appears to go to last line, set buf->scrollbar_down to be sure.

Fixes #1151
Closes #1171
2014-10-10 13:35:00 -04:00
9e9ed54bfa Transparent tray icon background. 2014-10-01 12:26:11 +02:00
aece18dfd5 Optimized and improved logo SVGs and PNGs.
Optimized SVGs by hand, ~80% size reduction.
Optimized SVGs for browsers, can now be rendered properly by Gecko- and
Webkit-based browsers.
Resized SVG page, shadow is no longer cut off to the right.
Switched tray icons for ones without the cut-off shadow.
Optimized and switched icons for the new ones.
2014-09-30 15:24:05 +02:00
abaed2bda4 Fix parsing of MONITOR responses
Fixes #1157
2014-09-27 13:11:21 -04:00
e8fb2dde56 Fixed instances of hexchat_printf that unsafely used a string parameter as a format string.
Fixes #1153
2014-09-25 00:54:38 -07:00
25c6638ce4 travis: Add clang & CPUs & fast_finish
HexChat seems to compile fine with clang so why to not test it too.
-j$(nproc) seems to work with HexChat and fast-finish marks build as
failed if one job fails.

Fast finish won't stop jobs that aren't finished at the time of failure.

Closes #1147
2014-09-21 04:31:16 -04:00
ce4e129849 Take two at fixing out of source builds 2014-09-21 03:53:30 -04:00
ecd1aa226a Fix attempting to toggle visibility when tray disabled 2014-09-21 03:37:03 -04:00
760d18b6e7 Fix missing header
And just use g_snprintf() while at it..
2014-09-20 14:09:38 -04:00
f389257403 Increase max len of chiper names
For example ECDHE-ECRSA-AES256-GCM-SHA384
2014-09-20 13:56:09 -04:00
84df81f336 Replace some unsafe usage of strncpy
Ensure everything is null terminated
2014-09-20 13:52:31 -04:00
a9a6cbda4e win32: Fixed build break due to 7a4a024 2014-09-17 13:00:11 -07:00
7a4a0243bd Fix out of source builds
Fixes #1018
2014-09-14 17:43:44 -04:00
e209e55e59 Use PlaySoundW to play sounds on Windows.
Fixes #1133
2014-09-13 00:23:44 -07:00
ad2300f236 Correctly open URLs with non-ASCII characters on Windows.
Fixes #1023
2014-09-13 00:22:48 -07:00
80bdd9ce11 Detect utf8 urls
They might not be valid, but like many things they are still used
2014-09-07 19:51:59 -04:00
5f99d34c3b Fix opening utf8 urls on OSX
- Escape hostnames with punycode
- Use proper encoding when launching open
2014-09-07 19:45:44 -04:00
2aa3eb8cfb Escape values set via pluginpref
Fixes #790
2014-09-01 18:17:26 -04:00
d1b9118056 Fix DOMAIN and EMAIL patterns.
Closes #1107
2014-09-01 17:55:22 -04:00
fd95c729d5 xtext: Add word and line selection modes
Similar to a GtkTextView if you double click you enter word selection mode
and if you triple click you enter line selection mode.
Allowing you to drag and select more than a single character.

Closes #1108
2014-09-01 17:53:03 -04:00
d1c40196e3 Fix using negative index 2014-08-23 14:13:34 -04:00
9716185edf Use glib to get portable mode dir
This should fix any non-ascii paths
2014-08-23 12:45:02 -04:00
a38892ff3b Use GFile API in gtkutil_check_file instead of stat/access.
The latter functions expect codepage-encoded filenames on Windows but GLib's API returns filesystem-encoded paths, which on Windows are UTF-8. GLib API should be used to deal with GLib API results.

Also fixed leaks in two of the callers of gtkutil_check_file()

Fixes #968
2014-08-20 12:50:08 -07:00
dc18e3da07 Update badges in readme 2014-08-20 15:19:57 -04:00
9127b510f2 Update readme.md 2014-08-15 19:55:40 -04:00
8f9ed6d942 Bump master to development release 2.11.0
To anybody confused this is not the next stable release, it is just a way to differentiate master
from the 2.10 branch and next stable will be 2.12.0 similar to Gnome's versioning scheme.
2014-08-07 16:30:28 -04:00
422edd8812 osx: Create bundles using homebrew
Just easier to maintain than jhbuild.

See https://github.com/TingPing/homebrew-gnome for deps.
2014-08-01 04:03:54 -04:00
345c8a29ad Stupid github editor adding newlines 2014-07-28 16:24:43 -04:00
a854234c1f Fix warning 2014-07-28 16:18:27 -04:00
4b549eeac8 Bump updater version on Windows 2014-07-28 16:14:10 -04:00
7c2c8b1403 Fixed expand_homedir to handle paths like "~user" correctly. 2014-07-28 14:49:14 -04:00
c2ecb4c68c Fix various crashes with pluginpref 2014-07-28 14:47:19 -04:00
ea9dafcd43 Add GeeksIRC and IRC4Fun to network list
Closes #1057
Closes #1058
2014-07-21 15:37:03 -04:00
7a7b9c682d Fix apostrophe related spell check issues 2014-07-21 15:10:21 -04:00
0d3706e2ee Fix possible crash in spell check
Closes #1048
2014-07-19 15:51:06 -04:00
3c584e2cd5 win32: Update Python links 2014-07-19 10:08:12 -04:00
9372972ad4 win32: Don't allow installing on Vista
It does not run on Vista
2014-07-19 10:06:29 -04:00
121cb8b88d Fix formatting warnings
Found by #1059
2014-07-18 07:16:43 -04:00
93caf4c7b4 Use GNUC format attribute on print functions
Closes #1059
2014-07-18 07:09:07 -04:00
21c0e47869 travis: update before installing deps 2014-07-17 07:33:57 -04:00
f1e853c1cb Disable tray support on Elementary
They followed Ubuntu in breaking any gtk trays..
2014-07-05 13:08:48 -04:00
aa7291fc9c configure: Improve python logic
- add checks for python3.4
- only warn once for failure to find a version
- only run pkg-config call if the .pc file was actually found
- make unsupported python version non-fatal

Closes #1006
Closes #989
2014-06-27 19:23:11 -04:00
3de79bca10 Update server list
Closes #1013
2014-06-27 19:19:13 -04:00
466646f84a win32: Silent installer improvements
- Launch uninstaller as VERYSILENT
- Don't launch Python/Perl installers when silent
2014-06-27 19:10:55 -04:00
e0f80e41bf win32: Use theme shipped with gtk
No reason for us to maintain own copy. This also
makes custom theme installing easier.
2014-06-25 20:38:53 -04:00
9a5977a9c9 Fix autotools warning 2014-06-21 23:13:05 -04:00
c3c6b46230 Clean up includes for gettext
It is always enabled.
2014-06-21 23:10:18 -04:00
47b4b0da8a Remove unused defines 2014-06-21 22:45:21 -04:00
45526205ab Remove broken debug code 2014-06-21 22:21:12 -04:00
3342af4185 Make plugin-timer translatable 2014-06-21 22:11:37 -04:00
7374637d34 Some problems in banlist.c are fixed 2014-06-17 17:16:45 -07:00
62209618e1 We don't ship DNS as a plugin anymore 2014-06-13 22:31:08 -04:00
7bfa2ee8a7 Fix GTK+ bundle licenses missing from installer 2014-06-13 22:31:00 -04:00
73c914cca9 Enable logging by default 2014-06-13 18:21:41 +02:00
77d9d421fb Partial fix for out of source builds
Patch from LRN

Perl's makefile needs fixed and the relative include
of config.h needs removed from hexchat.h

Mentioned in #1018
2014-06-09 13:54:16 -04:00
59f3a65911 Fix sending notify list to correct networks
Fixes #1015
2014-06-08 01:41:50 -04:00
9181ea068a Fix dcc dir warning showing when not auto-accept 2014-06-04 20:55:34 -04:00
c1d9aad546 win32: Fix path in installer project 2014-06-04 14:07:43 -04:00
3cd8556c54 Use GDir instead of dirent 2014-06-04 13:56:33 -04:00
9c981cfc6b Fix warning 2014-06-04 13:47:09 -04:00
11e3ecc739 Stop hardcoding plugin extensions everywhere 2014-06-04 11:15:35 -04:00
5849a0588e Use glib to parse and launch commands for util_exec
Fixes #958
2014-06-04 10:38:23 -04:00
b8c02f71d9 win32: Use config.h instead of config-win32.h 2014-06-04 10:30:18 -04:00
806b98dfc2 Update server list
Removed any server that could not be connected to atm

Closes #666
2014-06-03 17:20:01 -04:00
518669de80 Remove random ifndef WIN32
I never found a reason for it existing, but it also never affected much anyway.
2014-06-03 10:02:19 -04:00
8538dd1a49 win32: Don't auto-generate version.txt 2014-06-03 09:43:14 -04:00
a918ec2236 Fix scrolling the chanview on Unix
Fixes #948
2014-06-03 08:39:37 -04:00
af7e6d3e20 fishlim: Fix filename in error messages 2014-06-02 18:28:35 -04:00
7c52e29e6e Handle a special character before "+OK", e.g. identify-msg + or - 2014-06-02 23:52:34 +02:00
d59acc2789 Use path to HexChat instead of XChat in the test program
Note that this affects the test program only. It doesn't affect users
of FiSHLiM. The reason for this change is that XChat doesn't seem to be
maintained any longer.
2014-06-02 23:51:58 +02:00
33b01b720c Add missing include in the test program 2014-06-02 23:51:04 +02:00
d190773d09 Fix memory leak in the test program 2014-06-02 23:49:42 +02:00
d8c80cd277 Fix undefined behaviour in left shift
This is not a problem with a usual compiler configuration, but LLVM/clang
detects it when compiled with:

-fsanitize=undefined-trap -fsanitize-undefined-trap-on-error -ftrapv
2014-06-02 23:47:27 +02:00
3fb04bee85 Update translations 2014-06-02 22:18:25 +02:00
8578a9d52d Always use GModule for plugin support
Also cleans up some dead code
2014-06-02 05:38:13 -04:00
0b492d32b3 Add missing files to POTFILES.in 2014-06-01 17:19:09 -04:00
9b9ca27987 Bump version to 2.10.0 2014-06-01 13:07:12 -04:00
6187b35fa6 Remove dead network 2014-06-01 11:52:09 -04:00
6cf54d6515 Remove some hardcoded version numbers
- man page
- makebundle.sh
2014-06-01 11:40:48 -04:00
9344373e0b Sensitize open dialog button in friends list when selected
Fixes #1001
2014-05-31 14:18:48 -04:00
3d1d9e1716 Add SeionIRC to serverlist
Closes #982
2014-05-31 13:29:45 -04:00
e18a086ccf Add StormBit to network list
Closes #873
2014-05-31 13:29:19 -04:00
0838f8f688 Cosmetics 2014-05-31 17:15:45 +02:00
b3bcf71981 osx: Fix loading system's openssl config 2014-05-31 10:04:05 -04:00
6d03ddc4f4 osx: More theme tweaks 2014-05-31 08:22:01 -04:00
5706550cc1 Rework gtk_xtext_selection_draw(), simplify calls to _selection_render()
Fixes #992.
2014-05-31 02:40:28 -07:00
af7463e2bc osx: Use key theme shipped with gtk 2014-05-30 08:22:08 -04:00
e13e0f4314 win32: Fix exiting fullscreen to a maximized window 2014-05-30 04:26:34 -04:00
31843017d4 Make lawyers happy 2014-05-29 18:04:28 +02:00
0e0efbdb9a Replace Inno Perl with MSI Perl 2014-05-29 15:33:03 +02:00
a93e152912 ... and update perl description in installer 2014-05-28 19:14:17 -04:00
fdd922433b win32: Update perl urls in installer 2014-05-28 19:06:16 -04:00
8c00a4ff40 perl: Update Perl to 5.20 2014-05-28 18:22:19 +02:00
5f5c44620b Update translations 2014-05-28 05:31:51 -04:00
637c153de3 Use newer format for default keybindings
This uses the proper bindings on OS X
2014-05-28 01:39:45 -04:00
a800765b70 osx: Use applespell enchant backend
And fix enchant loading backends in the bundle
2014-05-27 23:50:46 -04:00
f92e72a92c osx: makebundle.sh improvements 2014-05-27 20:35:43 -04:00
0f6434986f osx: Properly handle quitting 2014-05-27 03:07:03 -04:00
f43b7524e0 osx: Properly use app menu
Mentioned in #994
2014-05-27 02:58:44 -04:00
cd1b9f42be osx: Use osx friendly bindings for GtkEntry
Fixes #995
2014-05-26 23:48:52 -04:00
4320d88b90 Fix crash with invalid dnd to userlist 2014-05-26 05:11:47 -04:00
cba4462458 osx: Improve gtk theme 2014-05-26 02:33:42 -04:00
30de7a1377 Update default settings
- Enable server-time
- Disable tree dots
2014-05-23 18:57:44 -04:00
011514e1ad Enable drag and drop on Windows
The issues around it no longer seem to exist in current GTK
2014-05-23 18:47:27 -04:00
6fb8cf40e1 Fixes #959. In xtext.c:find_x() return offset to hidden text if appropriate. 2014-05-22 07:06:51 -07:00
015cecf724 Fix drag and drop 2014-05-21 10:18:37 -04:00
904493b24f Show notifications for private actions
Fixes #990
2014-05-20 22:03:45 -04:00
95f9ca917e Default completion to last spoke 2014-05-12 05:10:26 -04:00
0dccf692d4 Add global option to suppress nick change events
Might as well add a per-channel option, too but for me that seems a bit unnecessary.
Closes #971
2014-05-12 05:01:24 -04:00
7435572282 Properly support notices to prefix'd users on a channel
Instead of hardcoding this behavior for @, +, and %, fetch the list of
mode prefixes from the server's state and look for one of those instead.

Closes #977
2014-05-12 04:55:45 -04:00
17671ec694 Fixed truncation of the reason when receiving a KILL message.
The KILL handler thought the message started one word later than it did, and
would cut off the first word.  This change starts the reason in the correct
place, and shaves off a leading : if one is present.

Closes #977
Closes #774
2014-05-12 04:52:42 -04:00
187c04f7e2 Add missing NULL check in cmd_lastlog
Closes #961
2014-05-12 02:33:02 -04:00
5af678d2b9 Default Techman's World IRC to SASL
Closes #963
2014-05-12 02:30:27 -04:00
1265eee9e5 Fix spell check on OSX 2014-05-11 06:46:12 -04:00
e5f7441bae Fix sorting problem when using tabs
Fixes #949
2014-05-11 05:02:20 -04:00
6ef41f7d4f Fix logging incorrect timestamp with server-time
Fixes #972
2014-05-11 05:02:19 -04:00
fea144dd19 Add option to bounce dock icon on OSX 2014-05-11 04:50:35 -04:00
fea528c39d Don't ignore command key in keybindings on OSX 2014-05-11 04:48:44 -04:00
9599c29c46 Use filesize format based on OS
Adds gui_filesize_iec option on Unix

Closes #966
2014-05-03 23:57:45 -04:00
fe71af15a7 Fix warning 2014-04-29 22:59:04 -04:00
b049757302 Replace deprecated GetVersionEx calls with version helpers
Only compiles with 8.1 SDK but runs everywhere

Closes #957
2014-04-24 06:55:16 -04:00
5fee31b1f0 Use the right API to get the path to Roaming AppData and Downloads directories, and actually convert it to utf-8 instead of using it directly. 2014-04-21 09:58:04 -07:00
e4413e0178 Don't convert the result of g_get_user_name / g_get_real_name from locale to utf-8 on Windows. They return utf-8 already. 2014-04-21 09:16:13 -07:00
dc27640265 Use utf-8 variant of strftime to format log file paths.
strftime assumes the format string is in locale encoding, which mangles log file paths that are in utf-8.

Fixes #767
Fixes #945
2014-04-21 01:39:28 -07:00
41c209bf45 Reset all nick entry errors in servlist when fixed 2014-04-19 22:52:30 -04:00
231590f71e sysinfo: Use less ambiguous IEC prefixes in storage measurements
Closes #922
2014-04-19 22:49:45 -04:00
7e55e4ee73 python: Scan for non-NULLs in print events
Closes #916
Closes #915
2014-04-19 22:30:31 -04:00
8bdde3a2df Fix warnings like usual 2014-04-18 23:50:27 -04:00
c8b3eef351 Improve displaying errors in servlist 2014-04-18 23:45:27 -04:00
5f297950a2 Fix issues removing autojoin channels
- Makes remove case insensitive
- Fixes crashing when channel not found
2014-04-18 20:40:33 -04:00
ccf49aa48d Fix #928. Fix memory leak, mea culpa. 2014-04-17 15:07:50 -07:00
b66edd372e Fixes #928 again. In scrollback replay, skip every line that starts 0x0d. 2014-04-17 09:53:09 -07:00
2a2eafcf1d win32: Update gtk theme description in installer 2014-04-17 02:43:22 -04:00
8a0f2b1d21 Use glib to format filesize in dccgui 2014-04-15 04:05:18 -04:00
660b860ddd Fix whitespace... 2014-04-10 23:05:04 -04:00
f27b2e82fa Add Xertion to network list
Closes #939
2014-04-10 22:59:04 -04:00
f994ef3f92 win32: Fix python 3.4 check in installer 2014-04-08 20:17:04 -04:00
b41bd594b0 Add account to Join event
Also reorganizes some logic. The account will usually be NULL unless
extended-join capability enabled.

Closes #934
2014-04-06 15:33:22 -04:00
0f828dd74f Add marker-line functionality for scrollback, instant seek.
Fixes #662.
2014-04-02 16:14:45 -07:00
5e8bc980e1 Merge pull request #929 from hexchat/928
Fix scrollback_load to deal with e.g. the output of /HELP
2014-03-30 20:09:37 -07:00
4ca9672a92 Fix scrollback_load to deal with e.g. the output of /HELP
Fixes #928.
2014-03-29 14:31:19 -07:00
1a3bfdce75 Improve handling scrollback when gui_tab_server==FALSE
Fixes #925.
2014-03-24 21:22:04 -04:00
46e449f110 Correctly scroll down autojoined channels
Fixes #58
2014-03-19 10:31:52 -04:00
0487daf865 Fix three miscellaneous bugs in gtk_xtext_get_word()
* Use utf8 functions for moving within string
	* Fix memory leak
	* Fix non-indent select problem
2014-03-19 10:31:26 -04:00
99ee7b6ef8 win32: Quote paths when invoking glib-compile-resources.exe
Also escape the trailing backslash in DataDir since otherwise it escapes the double-quote after it.
2014-03-18 11:05:54 -07:00
4cc764256c win32: Powershell.exe absolutely needs "-File" when running scripts or else it parses arguments with spaces as separate parameters. 2014-03-18 10:44:53 -07:00
36950c0d46 win32: Bump python to 3.4.0 2014-03-17 09:05:58 -04:00
caddb25711 Disable compression on tree_channel.png
This causes some artifacts in the icon, none of the others seem to have
the problem
2014-03-15 12:12:39 -04:00
d374f3ffe6 Disable hiding characters in the input 2014-03-15 12:12:38 -04:00
664da30ee4 Partial revert of 5f732128
Still some scrolling issues remain, much work is to be
done to properly fix it.
2014-03-15 12:12:38 -04:00
e36855a21e Fix miscapitalization 2014-03-11 17:55:01 +01:00
fd0eeddcc9 Add ElectroCode
Closes #910
2014-03-08 01:16:42 +01:00
b52650de5d Added Anthrochat and Furnet to server list
Closes #900
2014-03-08 01:14:20 +01:00
71e54854ec win32: Updated Python dependencies to 2.7.6 and 3.3.4 2014-02-28 01:11:18 -08:00
e6e5659b11 Minor redesign to text events window
This makes it more consistent with the other settings windows

- Use editable cell for entry
- Use pane to resize both treeviews
- Make preview fixed size and on bottom
- Enable search for event name
2014-02-18 17:02:19 -05:00
dd128ce534 Remove migration code for xchat 1 colors 2014-02-16 19:47:22 -05:00
8f6a596057 Properly handle shift tab in keyboard shortcuts 2014-02-16 14:48:17 -05:00
85aff53a88 Use more user friendly label for keys in keyboard shortcuts 2014-02-16 11:08:32 -05:00
bed5a21700 Add safemode action to desktop file 2014-02-16 01:05:07 -05:00
12cd5cb64a Translate desktop files 2014-02-16 00:56:48 -05:00
0d4cde2ba8 Tweak readme formatting 2014-02-15 18:08:01 -05:00
45cfb71c3e Add Jenkins badge 2014-02-15 23:31:49 +01:00
40e8ca9f6e Hide tray balloon option on OSX 2014-02-15 12:34:46 -05:00
d3b4771103 Fix warning.. 2014-02-15 11:55:29 -05:00
22b5affbe6 Use GRegex for channel list search
This adds support for Windows
2014-02-15 11:50:22 -05:00
b245f2f79e Tweak column sizing in channel list 2014-02-14 21:24:12 -05:00
f35ae03a66 Build with GTK_DISABLE_DEPRECATED 2014-02-14 16:31:08 -05:00
725aed43ff Redesign keyboard shortcuts window
- Convert GtkCLists to GtkTreeViews
- Save keybindings in GtkAccelerator format
- Store keybindings in a GSList
2014-02-14 16:29:44 -05:00
655b524ee6 Cleanup the preferences window
Simplifies some code and removes many widgets
2014-02-14 16:17:08 -05:00
b17c0276de Fix some leaks 2014-02-12 10:31:11 -05:00
ba399eb7f9 Remove unused function 2014-02-12 10:20:23 -05:00
6d815ac688 Fix warning 2014-02-12 09:27:28 -05:00
93d0341f9c Show help as tooltips in editlists 2014-02-09 02:42:40 -05:00
2f847428aa Fix hiding unsupported channel modes in topicbar 2014-02-07 04:04:59 -05:00
02275dff51 Fix some warnings in editlist 2014-02-07 02:27:44 -05:00
34cf164aa2 Use a single marshal file for entire project 2014-02-06 20:17:08 -05:00
5f7321280e Use a standard GtkScrolledWindow with xtext
Used in maingui, fkeys, text events, rawlog

This also implements the set_scroll_adjustments signal in xtext
2014-02-06 20:17:07 -05:00
8d77fd6a57 win32: Update installer for new Perl 2014-02-06 16:47:34 -05:00
b1b6255f38 Revert e64aa93f8 2014-02-05 01:27:36 -05:00
e64aa93f85 Use persitance with libnotify
This will keep notifications in gnomes tray
similar to a tray icon.
2014-02-05 01:00:06 -05:00
4c1fd3ee67 Fix many many problems in xtext.c related to character width.
* Rework multiline logic to use a GSList, not an array
* Remove all multibyte booleans; everything is potentially multibyte
  - Except for gtk_xtext_get_word(), which needs special attention
* Enhance pango work for bold and italics (attr_list -> attr_lists[4])
* Enhance gtk_xtext_strip_color () to save bold, italics info
* Involve emphasis information in all pixel-width calculations
* Rework find_x () to account for emphasis info in widths

Closes #891
Fixes #872
2014-02-04 21:26:58 -05:00
10d3c15143 Add /getbool command 2014-02-04 20:46:43 -05:00
3a7fb4d8e1 osx: Set Menlo as default font
This moves the find_font function to the front ends since it depends on
pango and cairo
2014-02-04 20:45:29 -05:00
8e55157e6a Print help messages for user commands 2014-02-04 20:32:10 -05:00
29e01daeae Merge pull request #890 from orium/lagmeter-fixes
Lagmeter fixes
2014-02-04 17:29:27 -08:00
9f01950bcb Fix warning 2014-02-02 19:07:52 -05:00
ed5ead6a07 Merge pull request #892 from ShutterQuick/patch-1
servlist: Add Canternet
2014-02-02 15:42:31 -08:00
1b936965ee servlist: Add Canternet 2014-02-02 23:08:32 +01:00
0cb025ff06 Prevent users from having the same alternate nicks
For some reason users do this and then complain when they cannot connect
when nick is in use. There are other ways for them to break it but at
least it shouldn't be on accident.
2014-02-01 13:31:42 -05:00
604337ccc7 Make all parent directories when creating configdir 2014-01-30 21:42:03 -05:00
b1a3c6135c Add synIRC to network list
Closes #888
2014-01-30 17:24:03 -05:00
9969282c72 Now make_ping_time() in common/util.c returns the time in milliseconds instead
of microseconds.
In fe_set_lag(serv, lag) the lag argument is now in milliseconds as well.

Fixes #758.
2014-01-30 19:23:35 +00:00
a1f01aca0f osx: generate plist file 2014-01-30 02:13:42 -05:00
83bf77f4d0 More autotools cleanup
- Don't build msproxy if unused
- Add resources to cleanfiles
- Remove old extra_dist from plugins
2014-01-30 02:01:42 -05:00
9ec4aa897a Use verbose builds with travis 2014-01-29 16:27:45 -05:00
a466369356 Respect verbosity setting when building htm 2014-01-29 16:25:57 -05:00
007f49c39f Fixes #881 Fix two bugs --
gtk_xtext_find_char() adjust negative y for int typecast
	gtk_xtext_find_x() return out_of_bounds TRUE if line outside windodw
	gtk_xtext_selection_draw() recognize TRUE out_of_bounds
2014-01-29 11:56:23 -08:00
6487e1b391 osx: Silence openssl deprecated warnings 2014-01-29 12:16:36 -05:00
e962039f83 configure: Don't error when python not found 2014-01-28 16:19:06 -05:00
6964079673 osx: Fix bundled Python 2014-01-28 16:19:06 -05:00
c9818adfb1 osx: Fix loading plugins from bundle 2014-01-27 19:59:23 -05:00
eb1d3a063a Allow overriding libdir 2014-01-27 18:39:26 -05:00
1d6d737927 Fixed lag meter getting stuck.
Also lag_sent in struct server should have always been an unsigned long.

Fixes #749.
2014-01-27 19:57:41 +00:00
efcb850956 win32: Include gtk theme in minimal install 2014-01-26 06:55:39 -05:00
35e84f6edc Show error when you lack write permissions to configdir 2014-01-26 06:55:38 -05:00
7fcf70c539 Fix loading default keybindings w/o write permissions
Closes #615
2014-01-26 06:30:33 -05:00
4510e8e2a2 Enable --command on win32
and make existing depend on
2014-01-20 20:42:48 -05:00
92a3a34785 Actually call commands sent with --command
Closes #884
2014-01-20 16:42:33 -05:00
4d1dc12a31 Remove unused xdcc server plugin 2014-01-20 04:44:44 -05:00
63edd4555b Translate appdata file 2014-01-20 03:04:52 -05:00
10a03f2216 configure: Clean up EXTRA_DIST 2014-01-20 02:38:32 -05:00
f7e3be4849 Don't store the potfile in git 2014-01-20 01:45:41 -05:00
58a3980372 Remove unused plugins 2014-01-20 01:31:41 -05:00
093bdd8b1c Fix warning
Leftovers from 38cbabea
2014-01-20 01:25:35 -05:00
681e14b3b8 Remove unused perl files
- old example scripts
- outdated docs
- mingw build script
2014-01-20 01:14:10 -05:00
38cbabea02 Revert GtkObject removal until Gtk3 2014-01-18 21:48:41 -05:00
ce09cb4a91 Update most deprecated gtk functions 2014-01-18 14:47:17 -05:00
fa1eb92a7b Update most deprecated gdk functions 2014-01-18 14:47:17 -05:00
eb29de1c7c Show a popup when opening plugin window when built without support 2014-01-16 00:58:04 -05:00
0297da4d6e Fix warning when built without plugins 2014-01-16 00:46:49 -05:00
eb90f076bb configiure: Fix testing compiler flags on anything other than gcc 2014-01-16 00:32:52 -05:00
c2c705a945 configure: add missing result message 2014-01-16 00:20:44 -05:00
6f6070b8c8 configure: Don't build python or perl plugin when plugins are disabled 2014-01-16 00:12:06 -05:00
37d92dd69c Check for gio during configure 2014-01-15 13:20:15 -05:00
8af9727937 Add gtk-mac-bundler files 2014-01-14 22:38:44 -05:00
7b0acb2b44 Build with gtk-mac-integration
- Use HexChat logo for dock icon
- Use appmenu (not finished)
2014-01-14 22:14:27 -05:00
4319f8009c Don't use SCROLL_HACK on osx 2014-01-14 22:14:27 -05:00
b2e3214d61 Clean up formatting during build 2014-01-14 01:18:15 -05:00
0b52ec3676 Move acinclude.m4 into m4 dir 2014-01-14 00:51:48 -05:00
599b9b0379 configure.ac: Actually check the CFLAGS and LDFLAGS returned by ExtUtils::Embed before deciding to compile the Perl plugin.
- openSUSE has ExtUtils::Embed, EXTERN.h and perl.so in the base perl package.
- Fedora has ExtUtils::Embed in a separate perl-devel package.
- Mageia has ExtUtils::Embed in the base perl package but EXTERN.h in a separate perl-devel package. Without this package, the compiler complains about the missing header.
- Debian has ExtUtils::Embed and EXTERN.h in the base perl package but perl.so in a separate libperl-dev package. Without this package, gcc compiles successfully but complains at link-time about -lperl (ExtUtils::Embed returns '-lperl' in ldopts but it's not actually installed).

configure.ac already requires ExtUtil::Embed to enable perl. To handle the case of Mageia and Debian, this change uses AC_TRY_LINK to verify that the flags returned by ExtUtils::Embed can actually be used to compile before deciding to enable the perl plugin.
2014-01-13 18:27:32 -08:00
a87b61c73f Build system improvements
- Use AM_GLIB_GNU_GLIB and IT_PROG_INTLTOOL
- Use gnome-autogen.sh
- Move language list to own file
- Delete generated config.rpath file
2014-01-13 14:27:36 -05:00
c804179a99 Tweak 908 syntax 2014-01-12 13:00:27 -05:00
baa5f9710a Add another badge to readme 2014-01-12 10:05:42 -05:00
37135cd682 ... Add inbound_sasl_supportedmechs to inbound.h 2014-01-12 07:13:51 -05:00
0f0dabdcf4 Support numeric 908 2014-01-12 07:10:26 -05:00
a817072e6f Add Turkish language to preferences
Users of uk, vi, and wa languages will have to manually change their
lang on Windows after this.
2014-01-11 18:34:30 -05:00
2ea1a992b1 Fix Turkish translation & update language list 2014-01-11 23:54:16 +01:00
649e962e6d Update Translations 2014-01-11 23:09:40 +01:00
7337007fe2 ... and ignore blank network passwords 2014-01-11 16:27:34 -05:00
6e049d5975 Login when /server is used on known hostname
This brings back old behavior where you can /server to another
server in the same network and login with services but now is only
sent when the server is known not every time so more secure.
2014-01-11 16:08:50 -05:00
b2a780e97a libsexy: Properly reflect reset attributes in input 2014-01-11 15:44:54 -05:00
aae6633c28 Don't select tab while closing with middle-click
Also fix unused warning and ignore shift right click
2014-01-08 09:03:50 -05:00
91ea5b6907 Fix warnings 2014-01-08 03:51:39 -05:00
20d26aea94 Rewrite dns command
- Cross platform
- Doesn't depend on external tools
2014-01-08 01:32:28 -05:00
9cba22c38a Define AI_ADDRCONFIG in inet.h, needed by OpenBSD 2014-01-04 23:13:34 -05:00
1e1ef1c6cf Change url-handler example to firefox -new-window
Firefox removed the ability to open private windows with a link
2014-01-03 03:39:35 -05:00
537fb85696 Bind middle-click to close tab
Closes #832
2014-01-02 18:03:32 -05:00
2bd1c3f99d Fixed whitespace. 2013-12-27 19:50:50 -08:00
c531db4714 fe-gtk: Fixed notification balloons for PMs not getting displayed if blinking tray icons for PMs is unchecked. 2013-12-27 19:41:18 -08:00
c7bf4b0474 Replaced use of T4 templates with PS-based templates.
TextTransform.exe is not available with Express versions of Visual Studio.
2013-12-27 12:05:07 -08:00
61ceaef57e Properly request server-time when it's the only cap
Closes #862
2013-12-27 09:20:39 -05:00
afb6685593 Merge pull request #842 from ManiacTwister/setup-fix
Fixed setup window title offsets
2013-12-25 08:31:13 -08:00
1311748b06 Merge branch 'pr/823' 2013-12-25 10:23:46 -05:00
7537bf8f07 Merge pull request #846 from grimreaper/patch-1
Fix autogen.sh shebang line
2013-12-25 07:23:14 -08:00
96fd4949bd Add Techman's World IRC network
Closes #813
2013-12-25 10:22:35 -05:00
f87071b7e2 Fix autogen.sh shebang line
/bin/bash does not exist on many systems.  In addition this script appears to be POSIX compatible so just use the appropriate shebang line.
2013-12-25 10:22:25 -05:00
5e455be5f3 Merge pull request #864 from RichardHitt/snadge
Ignore realname if it's a null string
2013-12-23 13:53:59 -08:00
d7e3e4c9a4 Only return channel sessions from find_channel()
Closes #865
2013-12-23 16:44:40 -05:00
26268d3188 Ignore realname if it's a null string 2013-12-22 11:19:30 -08:00
407613a8db Fix NAMES command syntax 2013-11-28 05:01:40 -05:00
ae4e55b922 Merge pull request #848 from orium/print-priority-847
Print{,_attr} and server{,_attr} hooks priority fix
2013-11-27 18:19:42 -08:00
40f26429f8 Print{,_attr} and server{,_attr} hooks were incorrectly handled when both
version existed (regular and attrs).  Specifically, the priority was not
respected, and both versions were run even when EAT_PLUGIN was returned.

Fixes #847.
2013-11-28 02:11:33 +00:00
60ea2874b3 Fix autogen.sh shebang line
/bin/bash does not exist on many systems.  In addition this script appears to be POSIX compatible so just use the appropriate shebang line.
2013-11-23 22:43:40 -05:00
d38bbb1e2c update help message for /names 2013-11-23 15:31:09 -05:00
5c223ec5d5 Fix more warnings 2013-11-22 16:53:50 -05:00
a656cee382 Fix warnings 2013-11-22 16:25:34 -05:00
9772eae568 Merge pull request #845 from somasonic/master
Added Interlinked to servlist.c
2013-11-19 15:27:11 -08:00
a45ba5bdc0 Add Interlinked 2013-11-19 22:16:57 +00:00
2bbb2ac7db Fixed setup window title offsets 2013-11-18 03:37:11 +01:00
5331a6145b Fix crash with negative timestamp in banlist
Closes #841
2013-11-17 11:57:13 -05:00
5c872eb110 win32: Improvements to portable-mode in installer 2013-11-16 15:37:41 -05:00
9834301eda win32: Download spelling dictionaries from installer 2013-11-15 09:49:01 -05:00
3821e7a750 Fixes #836. Move to line boundary in _scroll{down,up}_timeout() not _scroll(). 2013-11-14 19:18:07 -08:00
1aca24f3de Fixes #837. Rewrite gtk_xtext_scroll{down,up}_timeout(). 2013-11-12 15:02:38 -08:00
811caaaa3d Fixes #836. In gtk_xtext_scroll() always force line integral line boundary. 2013-11-11 12:55:38 -08:00
3f1994f3bf win32: Download deps during installation 2013-11-10 03:56:50 -05:00
39aec3a45b installer: Use correct path to iscc.exe depending on the platform. 2013-11-03 14:46:13 -08:00
e8282d97f1 fe-gtk: Quote path to glib-compile-resources.exe 2013-11-03 14:24:49 -08:00
2e75068c7c Use correct path to TextTransform.exe depending on the platform. 2013-11-03 14:16:11 -08:00
af248ce2c1 Fix invalid timestamps crashing on Windows 2013-11-02 21:07:03 -04:00
7e6f37b4cd Update help message for kick/kickban 2013-11-01 14:42:43 -04:00
f178b551da Don't auto unmark away when getting znc playback 2013-11-01 00:58:27 -04:00
9afd169362 Round 4 of gtk accessor functions: setup.c 2013-10-29 00:54:12 -04:00
9e5551aa59 win32: Install pixbuf engine 2013-10-28 21:56:01 -04:00
e8d4f3f848 Properly set away and fullscreen menu items 2013-10-27 13:24:15 -04:00
30a47cf62e Fix random_line() cutting off text
fgets() wont include the newline
2013-10-27 13:21:52 -04:00
aadee8afba Use a full path to configdir when using portable mode
This avoids the issue of plugins changing paths on us
2013-10-27 12:51:14 -04:00
a1c9294b89 Only update userlistgui when necessary 2013-10-26 13:37:20 -04:00
7cf9ea83cb xtext: Get proper text width with attributes 2013-10-26 08:51:50 -04:00
d1de138cb1 Sensitize banlist buttons if half-op
For #647
2013-10-25 09:28:09 -04:00
cff05cef68 Update readme.md 2013-10-24 07:24:18 -04:00
120a5a1dcd Match nick last when checking url
Closes #796
2013-10-23 06:32:57 -04:00
36e41a6476 fix another warning 2013-10-22 14:53:33 -04:00
0ff2ade078 fix warning 2013-10-22 14:44:30 -04:00
bb5d589c79 Open channel list window on /list 2013-10-22 13:35:28 -04:00
6d3c176ff8 url_check_line () now recognizes all urls
previously it only recognized url with "://" after the scheme.
Urls without a scheme are purposely not recognized by this function.

Fixes #701
Closes #815
2013-10-22 13:28:03 -04:00
a25363f5c3 make_re() now doesn't free the argument.
This is good practice and also helped simplifying re_*() functions.
2013-10-22 13:26:30 -04:00
a72d40284d fix some warnings 2013-10-22 06:21:58 -04:00
4a591cf7d7 Port editlist to GtkTreeView 2013-10-22 06:08:09 -04:00
19e3fce2eb Fix SASL on some networks 2013-10-20 22:29:16 -04:00
62735c54fb sysinfo: Fix showing debian version on ubuntu 2013-10-20 21:15:12 -04:00
712cfc3135 win32: install theme manager by default 2013-10-20 03:37:58 -04:00
20c9c94a61 Ignore nick prefix when splitting NAMES reply 2013-10-20 01:33:57 -04:00
ad1520b29a Only split NAMES reply if server supports userhost-in-names 2013-10-20 00:29:58 -04:00
06a7d84b43 Add support for userhost-in-names capability 2013-10-18 04:40:39 -04:00
d960006de4 Add option to auto +x on connect 2013-10-17 23:43:58 -04:00
cf5e2f273f libsexy: last color parsing improvement 2013-10-17 21:59:31 -04:00
f342123d7f libsexy: More color parsing improvements 2013-10-17 21:37:02 -04:00
aac231d307 Remove dead networks 2013-10-17 05:20:22 -04:00
0e8069661f Default to SASL on every supported network 2013-10-17 05:16:27 -04:00
737325b417 Remove #xchat from ChatJunkies autojoin 2013-10-17 05:00:40 -04:00
bc3b923131 Respect use global flag with SASL 2013-10-17 04:52:06 -04:00
c6ad450151 Focus new server tabs 2013-10-15 22:54:38 -04:00
a284219abd Reset entry attributes on newlines 2013-10-15 22:41:50 -04:00
2e08b3a2da Add remaining chanopts to plugin api
In flags of get_list('channels')
2013-10-15 18:30:37 -04:00
57d168e56a Fix moving channels when using tabs 2013-10-15 01:10:03 -04:00
490b9a91e4 Don't overwrite existing ignores when flooded
Closes #792
2013-10-14 17:25:21 -04:00
80cbc74b2b Remove commented out networks in servlist 2013-10-13 15:13:51 -04:00
cf370d7e79 When opening a query dialog with /query nick msg, the message was not shown in
the newly opened dialog. This fixes that issue.
2013-10-13 14:38:26 -04:00
fd13e4046f Perl: fixed crash when a script exits abnormally 2013-10-13 14:26:54 -04:00
1b07c0f54b Renamed FurryLand to ElectronIRC
Closes #804
Closes #780
2013-10-13 14:21:03 -04:00
d941af5a6f Don't open banlist in empty channel tab 2013-10-13 12:54:14 -04:00
e2edbfe47d win32: Use version information from configure.ac to populate the Windows-specific files that need it - config-win32.h, version.txt, hexchat.rc, hexchat.iss
This is done via T4 templates. The original files are now generated at build-time and so have been added to .gitignore and removed from the repository, with the exception of version.txt which must be hosted on GitHub for the updater plugin.
2013-10-12 18:41:27 -07:00
0061cd38d0 win32: Make all projects depend on common so that common is always run before any others. 2013-10-12 18:41:27 -07:00
8311c3aa56 Rename Strawberry to Hexchat in Perl error message 2013-10-12 19:42:26 +02:00
80625a06fa Fix installer on 32bit Windows 2013-10-12 13:36:43 -04:00
adab8567e4 Merge pull request #801 from Phr33d0m/patch-2
Better understandable option for the input box's color rendering
2013-10-11 18:03:42 -07:00
0b228246ba Better understandable option for the input box's color rendering 2013-10-12 03:03:09 +02:00
cbf275777c xtext: store palette as GdkColors 2013-10-10 21:02:24 -04:00
04f34feb26 Fix configure output when python disabled 2013-10-10 00:39:36 -04:00
c226f4089a Fix a few cppcheck warnings.
Use the proper data type in format functions and fix a resource leak.
2013-10-10 00:05:22 -04:00
e244001cee Add hexchat perl module to gitignore 2013-10-09 23:12:42 -04:00
0a0bb57b2a Remove left over ifdef for spellcheck 2013-10-09 21:40:22 -04:00
5ad9552365 Fix messages with server-time not showing as new activity
Added a parameter to fe_print_text() to say that the message does not represent
new activity. This is used when a log from an old session is loaded. This used
to be implicit whenever the timestamp was non-zero, but with server-time this no
longer makes sense.

Fixes issue #746.
2013-10-09 21:34:02 -04:00
111a58f1ef Improve Windows installer
- Unify x86 and x64 installer files
- Get rid of version program
- Clean up .iss file
- Only allow one installation
2013-10-09 17:17:53 -04:00
1f06922803 Revert 2d5cb3ec7b
Scrolling has issues i couldn't easily fix, will get back to
later but lets keep this usable
2013-10-09 13:59:07 -04:00
2d5cb3ec7b Round 3 of Gtk accessor functions: xtext 2013-10-08 21:01:07 -04:00
44ad5703ea Work around for /away being called multiple times
This will have to be solved eventually in menu.c so you can change their
status without emitting the signals.
2013-10-08 20:00:07 -04:00
b393d2f62f Fix scroll buttons when using tabs 2013-10-08 18:40:11 -04:00
0c3220c469 Add preference to change tabs on scroll
Also revert e52905f50c
2013-10-08 18:16:10 -04:00
e52905f50c Add chanview files to project 2013-10-08 17:59:07 -04:00
075cc61c94 Rebrand Perl plugin to HexChat,
Add /pl and plugin_pref

Add help messages
2013-10-07 22:58:38 +02:00
aafbb6374b Round 2.5 of gtk accessor functions
Some leftovers in chanview-tabs and maingui
2013-10-06 22:17:45 -04:00
c463236521 Round two of gtk accessor functions: chanview-tabs 2013-10-05 22:21:04 -04:00
435e8881ed Merge pull request #787 from siduction/master
some Typos causing lintian moaning: {R,r}eciev.. -> {R,r}eceiv..
2013-10-05 09:31:34 -07:00
cc6de3f665 some Typos causing lintian moaning: {R,r}eciev.. -> {R,r}eceiv.. 2013-10-05 18:26:55 +02:00
b1df2f43aa Merge pull request #784 from Farow/pull2
tree-view: switch tabs on mouse wheel up/down
2013-10-04 14:43:42 -07:00
65eb233f9c tree-view: switch tabs on mouse wheel up/down 2013-10-05 00:35:50 +03:00
e10faa0369 Fix crash with long notify lists. 2013-10-04 17:00:56 -04:00
4ec0e6fd05 libsexy: Improve color parsing
- Background colour is only parsed when there's a comma
- Offset for background color is incorrectly calculated (there's no
control character, just a comma)
2013-10-04 12:17:46 -04:00
a47740636d libsexy: never include spaces when spell-checking 2013-10-04 07:16:44 -04:00
a29ccffcbe libsexy: Add "HexChat" to session dictionary 2013-10-04 06:33:49 -04:00
fa955a0f1a Don't try to update the clear button state when there's no DCC window. 2013-10-03 17:43:44 -07:00
301e5d260d More improvements to libsexy
- Add option for showing attributes in input
- Improve attribute parsing
- Fix detecting iso-codes on unix
- Improve getting default langs from $LANG
- Fix warnings
2013-10-03 16:23:46 -04:00
da680f1066 Use spell entry for topicbar
Closes #150
2013-10-03 16:23:46 -04:00
67a488033b libsexy: Don't mark nicks spelled incorrect 2013-10-03 16:23:46 -04:00
f6dd61cb02 Update to gtkspell3's iso code lookup
This no longer requires libxml
so now there is no reason for this to be optional
2013-10-03 16:23:46 -04:00
eb93130cd3 Remove gtkspell support 2013-10-03 16:23:46 -04:00
d643056ca0 Fix loading enchant on Unix 2013-10-03 16:23:46 -04:00
ba74e70ec1 libsexy: load colors more efficiently 2013-10-03 16:23:46 -04:00
6c3d201070 libsexy: fix spell-check on contractions 2013-10-03 16:23:34 -04:00
af2458f556 Parse attributes in the input box 2013-10-03 16:19:25 -04:00
3cb4439121 Merge pull request #781 from Farow/pull2
Added shortuct to config folder to installer
2013-10-03 05:14:25 -07:00
19ef48d0e8 Added shortuct to config folder to installer
Fixes #612
2013-10-03 14:42:32 +03:00
7ba2f1f17f Topic bar improvements
- Don't show on server tab
- Don't show unavailable modes
- Remove less used modes and add more common ones
- Use proper case for buttons
2013-10-03 05:01:15 -04:00
a831ecfd01 Strip trailing space from pluginpref_list entries 2013-09-30 01:38:51 -04:00
b7e8f64bba Fix crash in hexchat_pluginpref_list()
Set max output size to 4096
2013-09-30 01:23:20 -04:00
76b1c2f1ed Update readme.md 2013-09-29 20:44:12 -04:00
83fcb52085 Merge pull request #775 from benburkhart1/master
Channel joiner dialog does not allow you to join a valid channel
2013-09-29 15:59:00 -07:00
0791c8f069 RFC 1459 does not require channel name be above 0 characters, only that there's a prefix involved, this behavior is present elsewhere in xchat's join channel dialog, making this match. 2013-09-29 17:36:15 +00:00
247d84fbd1 Remove unused gtk-prefs project 2013-09-29 02:49:55 -04:00
00bd389cdc Merge branch 'gresource' 2013-09-29 02:24:30 -04:00
1f84c507a0 Reorganize files and migrate images to gresource 2013-09-29 02:24:06 -04:00
4ba886f7aa Accept %I in text events 2013-09-29 01:52:21 -04:00
d552415abe Add default keybindings for italics and underline 2013-09-29 01:47:10 -04:00
c537dae7f8 Use Pango Attributes for bold and italics 2013-09-28 23:02:38 -04:00
0d2feba69c Revert fast scrolling with background image 2013-09-27 18:23:51 -04:00
5465790886 Merge branch 'xtext2' 2013-09-27 17:42:38 -04:00
958f4099f1 Remove overdraw 2013-09-27 17:40:53 -04:00
449553ffb0 Replace xtext's transparency with full window transparency
Xtext's transparency barely worked on windows, didn't work on any modern
linux wm and used fake transparency.
This uses gtk's built in window opacity that works on more systems and
is real transparency.
Text area only transparency may return with a transition to cairo, if it
works on Windows.
2013-09-27 17:40:05 -04:00
960ded7db4 Update link to site in perl plugin 2013-09-27 20:09:48 +02:00
a14fe580f8 Tweak svg file 2013-09-27 02:51:19 -04:00
f23bda9e46 Remove useless defines
- HEXCHAT
- USE_DB
- SCROLL_HACK
- MOTION_MONITOR
- ITALIC
- COLOR_HILIGHT
2013-09-26 22:34:40 -04:00
ef73a89139 Remove XFT, SHM, and MMX 2013-09-26 22:31:14 -04:00
61b58fd5be Remove remnants of native file dialogs 2013-09-26 22:07:22 -04:00
60ba4d651c typo 2013-09-26 05:10:17 -04:00
5a6a03af0b Update appdata description 2013-09-26 04:10:40 -04:00
6f013e807c Remove whats left of gconf 2013-09-26 03:06:01 -04:00
d18a95fda6 Make Python version consistent on both platforms
and don't hardcode 2.7/3.3
2013-09-25 20:53:23 -04:00
c7a00a4aba Only show users country if its not unknown 2013-09-25 17:16:47 -04:00
7bc3317eeb Don't open most windows at mouse position 2013-09-25 02:09:47 -04:00
8028bb7f82 Make join dialog modal 2013-09-25 02:02:26 -04:00
6fc412c4e2 Update installer links to 2013 redist 2013-09-25 00:54:28 -04:00
0749cb1553 Remove hextray 2013-09-24 21:01:16 -04:00
f198581a09 Split long messages at spaces 2013-09-24 19:57:37 -04:00
4c9b193b45 Fix tab completion with utf8 completion char
Closes #738
2013-09-24 17:03:19 -04:00
130be78dbb typo.. 2013-09-23 23:10:31 -04:00
29d6db30ba Update help messages for userlist buttons and user popups 2013-09-23 23:08:56 -04:00
2e6001f1ed Revert menu.c @ ae04663aa9
This caused a few bugs such as improperly setting away/back
and redrawing the channel tree when the menu is opened.
2013-09-23 22:00:07 -04:00
9c4112cda7 Fix /cycle command
- Uses the correct channelkey when called from another tab
- Allows it to be used from any tab in the same server
- Verifies it's a channel you are in
2013-09-23 17:17:35 -04:00
04dbcdffc0 Only underline the channel part if nick prefix 2013-09-23 15:10:00 -04:00
0146a38faa Fix url detection of channel with nick prefix
Closes #769
2013-09-23 14:58:11 -04:00
145ceba124 Strip trailing space from CAP REQ
Mentioned in #770
2013-09-23 12:45:08 -04:00
90ea691b75 Add screenshot to appdata file 2013-09-20 23:01:27 -04:00
51cdcfca82 Fix warning 2013-09-20 17:33:27 -04:00
ae04663aa9 First round of using GTK accessor functions
This is the first step to build with GSEAL_ENABLE
setup.c uses a deprecated fontchooser,
chanview-tabs.c didn't like the conversion, and
I am waiting to do some work on xtext.c before
converting it.
2013-09-20 17:24:39 -04:00
9f8073ab77 Fix messages on networks that have chantypes the same as nick prefixes
Closes #763
2013-09-20 08:59:25 -04:00
bfa199be79 Add /d2Zi+ switch for better debug symbols 2013-09-20 13:11:01 +02:00
36911710fd Make manual reposition after unfullscreen Windows only 2013-09-19 22:01:15 -04:00
267ac71d4f Replace more GDK_* with GDK_KEY 2013-09-19 17:58:10 -04:00
f6ba274134 Add fullscreen to to view menu 2013-09-19 17:52:17 -04:00
cd825ac735 Improve text repositioning when searchbar string is modified. 2013-09-18 15:25:50 -07:00
1007af9506 Add message arguement to /query
Closes #757
2013-09-17 18:19:02 -04:00
b67953c70c Searchbar: Don't show error on empty string 2013-09-16 21:48:04 -04:00
1a67e245ac Fix searchbar loading highlight all pref on start 2013-09-16 21:31:05 -04:00
648de4410c plugins: fishlim: VS2013 comes with a working stdbool.h 2013-09-15 15:08:40 -07:00
b658fca4a7 Convert project files to vs2013 2013-09-15 15:07:46 -07:00
277732e384 Fix xtext crash in rawlog/text events window
Closes #740
2013-09-15 10:44:55 -04:00
f13413c26a Fix logging networks with invalid names on Windows 2013-09-15 07:40:47 -04:00
c9418ffca3 Translate -ize to -ise, favor[ite] to favour[ite], Behavior to Behaviour 2013-09-15 01:28:10 -07:00
ddb3bf05d8 use GDK_KEY 2013-09-15 03:22:04 -04:00
8b463e6b14 Update POTFILES.in 2013-09-15 03:07:45 -04:00
bc8eaf6588 Replace search window with a searchbar 2013-09-15 02:55:18 -04:00
b0b8f40791 Replace search window with a searchbar 2013-09-15 02:51:35 -04:00
aa37686bbd Move optimization settings from all subsequent projects to hexchat.props 2013-09-15 02:45:38 -04:00
4721a3747e Python: return hooks with PyLong_FromVoidPtr
Fixes #685
2013-09-15 02:45:38 -04:00
e5cb69db5d Python: Use keywords for attributes in emit_print() 2013-09-15 02:45:37 -04:00
414b591358 Python: Add support for attributes in hooks 2013-09-15 02:45:37 -04:00
ccd4945504 Merge xchat r1525
Fixes possible crash
2013-09-15 02:45:36 -04:00
59b19bac70 Update tooltip for sound alerts without libcanberra 2013-09-14 12:46:38 -04:00
14b8a77b78 Default spotchat to SASL 2013-09-12 03:55:17 -04:00
a71849db3f Bump Version to 2.9.6 2013-09-11 18:18:19 -04:00
a2eb3325ce Update Translations 2013-09-11 04:50:35 -04:00
b9df78b9c6 Exec: Print help on empty string
... and bump version
2013-09-10 02:24:53 -04:00
9a3c1ccd72 Update transifex config file 2013-09-08 01:28:06 -04:00
68116da5ad Remove about.c from POTFILES.in 2013-09-08 01:17:34 -04:00
68153812f7 Add channelkey to channel lists 2013-09-07 20:17:42 -04:00
bb1062ae2a Merge branch 'saslmech' 2013-09-07 19:00:40 -04:00
bdb18828e3 Disable challangeauth without openssl 2013-09-07 18:59:29 -04:00
a903f16c68 Implement BLOWFISh, AES, and EXTERNAL SASL mechanisms
Closes #657
2013-09-07 18:59:28 -04:00
5feeb717a0 Add appdata file 2013-09-07 02:08:04 -04:00
703316ace6 Merge pull request #733 from hexchat/filedialog
Improve file dialogs
2013-09-06 17:00:55 -07:00
88afa4afa2 Fix detecting utf-8 on some networks 2013-09-06 14:00:53 -04:00
bf269d2e03 Of course mimetype doesn't work on Windows.. 2013-08-31 15:38:29 -04:00
755932c3bc Use mimetypes for audio and images 2013-08-31 15:31:22 -04:00
4c406bce17 Improve file dialogs
- Fixes #314
- Adds file extensions to sound and image browsing
- Some options no longer default to our config dir
- Always add a shortcut to our config dir
- Remove broken 'last_dir' functionality, gtk already knows recent
2013-08-31 11:39:12 -04:00
3a87dedbb5 Merge pull request #731 from NoneGiven/patch-2
Fix colored vhosts
2013-08-28 12:57:18 -07:00
731fd33be2 Update text events, fix colored vhosts 2013-08-28 15:35:46 -04:00
ffc47e8439 Update travis to build theme manager 2013-08-28 13:32:35 -04:00
cc9d6042fd Update htm mime file 2013-08-28 13:22:12 -04:00
012b9c478e Merge pull request #730 from hasufell/mono
BUILD: add --with-theme-manager configure option
2013-08-28 10:21:37 -07:00
5d35ecfaa9 BUILD: update mime and desktop database 2013-08-28 14:30:57 +02:00
21bf0ae998 update desktop file 2013-08-28 14:30:57 +02:00
9d0ea7af4b update gitignore 2013-08-28 14:30:57 +02:00
08fd4f2dd7 BUILD: use thememan.in instead of Makefile echo 2013-08-28 14:30:57 +02:00
8f0d6e85fd BUILD: don't hardcode the install path in the script 2013-08-28 14:30:57 +02:00
7dea09c371 BUILD: fix quoting issue
\"$@\" got malformed and interpreted by the Makefile
2013-08-28 14:30:57 +02:00
ce5653d75c BUILD: add --with-theme-manager configure option 2013-08-28 14:30:57 +02:00
36b84c9af3 Merge pull request #728 from hasufell/master
build system improvements
2013-08-27 02:16:12 -07:00
d13046614e BUILD: use a blacklist rather than a whitelist for python versions 2013-08-27 10:59:03 +02:00
53e30995d6 Merge pull request #729 from hasufell/mime
fix htm desktop file
2013-08-26 22:44:57 -07:00
0c4e343b46 STYLE: tabs, not whitespaces 2013-08-27 00:18:08 +02:00
e6394cafe2 BUILD: consistently use PKG_CONFIG 2013-08-27 00:09:35 +02:00
fabc5bf4b7 STYLE: add missing comma 2013-08-26 23:45:51 +02:00
d601335aa6 fix desktop file 2013-08-26 23:27:29 +02:00
d6dacbe955 BUILD: use pkg-config to detect python 2013-08-26 23:00:47 +02:00
616c669d3b Fix /exec -o on Windows 2013-08-26 12:53:17 -04:00
d52cc1a1bd Add desktop and mimetype file for the Theme Manager 2013-08-26 10:06:34 -04:00
43a2f43090 Handle incoming messages from yourself
These are common for users of bouncers, private messages still need to
be handled.
2013-08-26 09:44:18 -04:00
b3369a4bc4 Sysinfo: Add announce option 2013-08-26 04:31:45 -04:00
b5b547abb6 Sysinfo: Fix gentoo detection 2013-08-26 03:58:36 -04:00
4e775df156 Update CLEAR and MSG help message 2013-08-25 11:16:49 -04:00
bf0ff98385 Update help for close command 2013-08-25 10:52:37 -04:00
66412e4997 Add TinyCrab to network list
Closes #723
2013-08-21 07:36:53 -04:00
77c1edbe13 Handle lists in MONITOR replies 2013-08-20 00:24:20 -04:00
46c32952b0 Make formatting more consistent
#719
2013-08-17 20:39:24 -04:00
41719bd4a8 Merge pull request #719 from Farow/pull
Improve cursor behavior
2013-08-17 17:32:16 -07:00
9629ca3fd9 Improve cursor behavior
- The cursor doesn't turn into a hand for non-url parts of a word
- Removal of unneeded variable str
2013-08-16 23:05:27 +03:00
a3ab5edc59 Merge pull request #718 from Farow/pull
Channel url improvements
2013-08-15 21:36:35 -07:00
8fbcddd2cd Add ObsidianIRC network
#412
2013-08-15 17:59:41 -04:00
73d63ca3da Allow multiple channels in url, fix nick re
- Multiple channels have to be separated by a comma
- Fix #nick becoming a url for nick instead of #nick
2013-08-13 07:39:34 +03:00
721a9965aa Fixed munging of whitespace in sysinfo's matching functions
Closes #712
2013-08-12 23:41:37 -04:00
4f77f046d0 Channel url and cursor fix
- Allow colons in channel urls
- Only add the channel part in the context menu
- Fix cursor not changing between separator and url
2013-08-13 04:19:14 +03:00
0b95c1c444 Merge branch 'pluginreload' 2013-08-10 19:44:38 -04:00
41c0c345cd And free connect command.. 2013-08-10 18:04:56 -04:00
c8f6d2c538 Merge pull request #713 from Farow/master
Make the channel key input larger
2013-08-10 14:32:02 -07:00
b2d2187b20 Only replace variables in connect commands 2013-08-10 16:51:56 -04:00
b8894a468d Update channel key input
- allow up to 23 characters
- make the input bigger
2013-08-10 22:55:17 +03:00
1c30e0c124 Still include old freenode hostname in servlist 2013-08-08 12:01:49 -04:00
4dc600a63c Alphabetical order.. 2013-08-07 06:28:04 -04:00
13bfd060b6 Format Channel URLs
closes #706
2013-08-07 06:14:30 -04:00
1370a49742 Save notify list on close of friends list
for #570
2013-08-06 16:13:10 -04:00
ab6bf4234c Bind esc to close in chanlist 2013-08-05 07:06:04 -04:00
5224c275e8 Destroy utility windows with their parents. 2013-08-05 04:03:26 -04:00
272b3d2f82 Add .patch to gitignore 2013-08-04 07:13:50 -04:00
2528a78593 Remove VS Redistributable update version from installer link 2013-08-04 11:45:08 +02:00
2917a83d7b Update text on reload button 2013-08-04 04:53:40 -04:00
77e9417c7b Add label for website in about dialog 2013-08-04 04:48:45 -04:00
e8456beadc Add reload command for plugins and add to gui 2013-08-04 04:36:10 -04:00
d63a33b6dc Use built-in gtk_about_dialog 2013-08-03 07:11:25 -04:00
bdc814a4a4 Merge pull request #677 from hasufell/master
CONFIGURE: add "--enable-minimal-flags"
2013-08-02 23:25:40 -07:00
ce40e5a111 Merge pull request #700 from orium/url-chan-prefix
Server aware nickname and channel matching
2013-08-02 23:24:50 -07:00
61c9ad08bf Fixed memory leak. 2013-08-02 02:45:54 +01:00
bca0ad8e1e Fix description line for Scroll Page in fkeys.c. 2013-08-01 11:55:22 -07:00
6ec7bfad30 Indentation fix. 2013-08-01 16:39:49 +01:00
0e76283c9a Now nickname and channel matching is server aware: we only match words that
have the prefixes the server uses.

The url regex matching was designed to be more versatile. This was needed to
disambiguate matches between nicks and channels, since they may have common
prefixes now (&+!). In case of ambiguity, when the server supports prefixes that
are common to both channels and nicknames, we choose the nickname (the nickname
only matches if there is a user with that nick in the current session).

Fixes #655.
2013-08-01 16:28:17 +01:00
78a72a6c1e Merge pull request #697 from RichardHitt/topbottom
Scroll-page keybindings:  Add Top (C+HOME), Bottom (C+END)
2013-07-31 22:20:48 -07:00
4a95b07ae7 python: Set VERSION using existing VERSION_MAJOR and VERSION_MINOR macros and some mintor refactoring. 2013-07-30 22:54:57 -07:00
154ea98deb Fix kickbanning opped users 2013-07-30 23:29:25 -04:00
be252e271f Scroll-page keybindings: Add Top (C+HOME), Bottom (C+END) 2013-07-30 13:11:07 -07:00
e2328e7a91 Merge pull request #687 from Mikah89/clear_dcc_list_rebased
Clear button in dcc download manager
2013-07-27 13:19:29 -07:00
942b92c796 Remove #hexchat from default autojoin 2013-07-27 00:23:40 -04:00
3bd2143d9a Have join dialog suggest #hexchat for freenode users 2013-07-27 00:22:57 -04:00
93cfa353e7 Tweak cli output and fix related warnings 2013-07-27 00:03:16 -04:00
2cbe758c80 Fix some warnings 2013-07-26 22:53:01 -04:00
72c6834cc5 Python: Fix callbacks for the "special" print hooks 2013-07-26 19:51:56 -04:00
ac06b74b18 Use system's libsexy by default
It will still fallback to static
2013-07-26 15:03:59 -04:00
1fd94e79b9 Merge pull request #679 from hasufell/libtool
MAKE: backwards compat for old libtool
2013-07-26 11:55:37 -07:00
bb3cb269c2 Upd: Properly handle http errors
Also some cleanup of some old code and comments
2013-07-25 19:54:25 -04:00
715a520c0e Move optimization settings from all subsequent projects to hexchat.props 2013-07-24 20:56:36 +02:00
78d14a2b1e Removed restriction that disabled the clear button if at least one transfer item was selected in dcc download manager. 2013-07-23 23:55:20 +01:00
3d10b9f3e2 Python: return hooks with PyLong_FromVoidPtr
Fixes #685
2013-07-21 16:40:38 -04:00
f97f1a08ae Merge pull request #689 from hexchat/python-attributes
Python: Add support for attributes in hooks
2013-07-21 13:33:47 -07:00
13e9713b72 Merge xchat r1525
Fixes possible crash
2013-07-20 18:00:19 -04:00
bf9276fc5c Python: Use keywords for attributes in emit_print() 2013-07-19 14:14:26 -04:00
fe86c4900f Merge pull request #680 from staticshock/dotless-domains
Permit dot-less domain names
2013-07-19 09:23:52 -07:00
f45487e92c Python: Add support for attributes in hooks 2013-07-19 10:25:46 -04:00
bca972bdc3 Permit dot-less domain names
Fixes #523
2013-07-19 09:01:53 -04:00
a8abba84bd Fixed coding style and clearified some comments, following arnavion suggestions 2013-07-17 09:20:54 +01:00
2e2f4662f3 Updater: fix download links 2013-07-16 12:48:34 -04:00
0c87c49146 Implemented clear functionality for DCC download manager. Created clear button in DCC downloaded manager interface. 2013-07-15 21:34:14 +01:00
6c8d9c2194 Merge pull request #675 from orium/server-time-plugins
Server time plugins
2013-07-14 11:29:24 -07:00
62d52d55b2 Add staticbox network
Also default to SASL on some more networks
2013-07-14 10:20:03 -04:00
3598966069 Forgot to add hexchat_emit_print_attrs() to the macros in hexchat-plugins.h. 2013-07-13 16:50:51 +01:00
ec6f5b011a g_free() should be used for g_malloc(). 2013-07-13 05:33:16 +01:00
9d4a1a3b4f Update docs links 2013-07-12 19:32:10 -04:00
9978ebd853 Removed outdated comment. 2013-07-12 22:52:12 +01:00
18eaccb840 Added functions to create/destroy event_attrs to plugin interface.
Function names were chosen to keep consistency with the rest of the
API.
2013-07-12 22:46:04 +01:00
e63ec01089 MAKE: backwards compat for old libtool 2013-07-12 14:17:30 +02:00
e0fb3d537d Added hexchat_emit_print_attrs() to plugin interface. 2013-07-12 01:33:35 +01:00
19d4356484 CONFIGURE: add "--enable-minimal-flags"
This will turn off automagic adding of flags that might be unwanted
such as "-g" or "-pipe".
2013-07-11 12:36:14 +02:00
be1e6bde65 Fix requesting sasl multiple times 2013-07-11 05:58:10 -04:00
f113008c7f Don't grey out log fliename in preferences
It can still be useful when global logging is disabled
2013-07-10 15:39:45 -04:00
5e240eb259 Indentation fixes and code cleanup. 2013-07-10 00:42:34 +01:00
7101b7b864 Now hexchat_hook_server_attrs() and hexchat_hook_print_attrs() is called
when it should. This should close #661.
2013-07-09 23:11:28 +01:00
98aa62f637 Removed two dummy functions in plugin interface. 2013-07-09 22:04:07 +01:00
798db7368a Added hexchat_hook_server_attrs() and hexchat_hook_print_attrs() to the plugin
interface. This hooks are similar to hexchat_hook_{server,print}() except the
callback passes an extra argument with the (new) structure hexchat_event_attrs.

This structure contains attributes related to the event; by now it only contains
the server_time_utc member which is non-zero if server-time is enabled and the
server used this extension to pass a timestamp.

See issue #661.

(Note: this hooks are still not called by hexchat in this commit.)
2013-07-09 20:21:16 +01:00
4cf61ccedb Fix warning 2013-07-08 16:30:54 -04:00
7f50ee6fd2 Increase upper limit for max DCC speed in preferences
For #672
2013-07-07 15:15:50 -04:00
1544a5d6cb Default to nickserv when using /ghost or /id commands 2013-07-04 18:08:56 -04:00
3284502645 Merge pull request #667 from orium/fe_get-dialogs-transient
fe_get_{int,str}() sets transient for the main window.
2013-07-03 12:00:41 -07:00
4cc03aba75 Now fe_get_{int,str}() sets transient for the main window.
This allows window managers to handle the window in a better way, for instance
xmonad used to open the dialogs in a new tile and now opens a simple float.
2013-07-03 19:48:45 +01:00
286bbc6bde Add another server to 2ch network 2013-07-03 00:42:48 -04:00
d1244d7231 Use URL command for opening in existing
This avoids making a new connection to an already open network.
2013-07-02 12:22:01 -04:00
50219a63ad Fix opening empty channel when url has trailing slash 2013-07-02 12:19:47 -04:00
806c75f051 Add 2ch network
Closes #666
2013-07-02 10:35:06 -04:00
ee621d2435 Update man page 2013-07-01 21:57:38 -04:00
340811da6e Merge pull request #665 from orium/freebsd-fixes
Freebsd fixes
2013-07-01 18:51:51 -07:00
4b40597c76 Fixed get_timezone() to work on windows. 2013-07-02 02:22:41 +01:00
9a789bc9e7 Now handle_message_tag_time() doesn't use "timezone" since it is not defined
in *BSD.
2013-07-02 01:54:18 +01:00
4886cc8258 Don't use G_VALUE_INIT since it was introduced in glib 2.30, and our minimum
requirement is glib 2.28. This was giving a compilation error in FreeBSD 9.1,
since it uses glib 2.28.
2013-07-02 01:54:11 +01:00
82277a80ea Fix urls with --existing 2013-07-01 14:53:47 -04:00
22064278df Update fe-text's help message 2013-07-01 14:36:15 -04:00
932bfa3482 Don't use popup dialogs for help 2013-07-01 14:28:26 -04:00
5de5d6d00b Improve help message 2013-07-01 14:11:24 -04:00
aab55d8cff Handle extraneous cli args as urls 2013-07-01 13:43:58 -04:00
73c9321361 Fixed server-time timestamps issue regarding local time. 2013-06-30 15:00:38 +01:00
25288120be Fixed another bug in handle_message_tag_time(): tm_mon is between 0 and 11. 2013-06-28 23:42:11 +01:00
d99d951f7f Fixed bug in handle_message_tag_time(). 2013-06-28 22:08:35 +01:00
00e15828a1 Also support znc.in/server-time-iso 2013-06-28 13:33:08 -04:00
ad926e9b07 Merge pull request #656 from orium/server-time
Closes #499
2013-06-28 11:59:33 -04:00
059cbcd406 Fixed compilation error in VS. 2013-06-28 16:29:39 +01:00
dcdb11a78b Added preferences options to enable the server-time extension when available.
(Internationalization messages missing.)
2013-06-28 16:15:15 +01:00
aef9e3922e Fixed a few null pointer derefs caused by dummy code that somehow I
forgot about.
2013-06-28 16:08:03 +01:00
ce6fef3d0a A few messages missing regarding server-time. 2013-06-28 16:07:42 +01:00
4057b7dd58 Now inbound_cap_ls() can enable extensions when a bouncer uses a namespace for
the extension server-time.
2013-06-28 16:07:24 +01:00
d1725e3f44 server-time for all numerical messages. 2013-06-28 16:04:32 +01:00
42da8fe3ef server-time supported in all named servermsg: ping, error, notice and
authenticate.

The only thing left to do for server-time are the numeric messages.
2013-06-28 16:04:16 +01:00
a01bd83c64 Organized cap inbound code in inbound.c instead of proto-irc.c. 2013-06-28 16:04:06 +01:00
6a0240aa18 server-time supported in most named messages. 2013-06-28 16:03:37 +01:00
179747a7bc Implemented handle_message_tag_time() for time-server messages. 2013-06-28 16:03:20 +01:00
94186f7888 First step towards message tags extension support
(see http://ircv3.atheme.org/specification/message-tags-3.2).

In particular this commit implements a (very) dummy implementation
sketch of the server-time extension
(see http://ircv3.atheme.org/specification/message-tags-3.2 and #499).
2013-06-28 16:03:12 +01:00
ac5771377e fe-gtk: Only escape notification bodies for notification servers that support "body-markup". 2013-06-28 00:14:54 -07:00
863dc2e841 docs: Typo. 2013-06-27 10:53:29 -07:00
59b9ee3417 plugins: Implemented get_info("password") and re-added get_info("nickserv") as an alias to that. 2013-06-23 11:39:12 -07:00
3285934703 Update hacking.md 2013-06-23 07:29:26 -03:00
c7d1102c61 perl: Fixed get_list('networks') to work with new servlist.conf syntax for autojoin channels. 2013-06-22 22:06:49 -07:00
6e3f05fcc7 Fixed indent: spaces -> tabs. 2013-06-20 19:03:26 +01:00
d8286a63ec Add more uri schemes 2013-06-19 18:57:52 -03:00
9854b100fb Detect Spotify URIs 2013-06-19 05:07:45 -04:00
ef5588b9c0 Use chat.freenode.net 2013-06-18 22:38:10 -03:00
64ba92593e fix merge conflict 2013-06-18 20:40:07 -04:00
33b5dc1c75 Use tabs 2013-06-18 21:20:09 -03:00
02139fbb79 Handle IPv6 addresses correcly in fe_open_url_locale(). 2013-06-19 00:15:47 +01:00
9ef1d1db96 Now WORD_HOST6 is handled the same way as WORD_HOST. 2013-06-18 23:30:38 +01:00
225acd0ce2 Merge pull request #649 from RichardHitt/urlgrabber
Fix urlgrabber right click selection.
2013-06-18 15:08:56 -07:00
b4496216db Fix urlgrabber right click selection. 2013-06-18 14:53:18 -07:00
d88c4ad411 Added a few more useful url schemes. 2013-06-18 12:32:55 +01:00
8b217981ed Removed unused argument of make_re(). 2013-06-18 12:07:46 +01:00
8ce8a359c1 Now url_check_word() returns WORD_HOST6 when a ipv6 address is matched. 2013-06-18 12:01:39 +01:00
55734baed8 Fix IPv6 addr matching in url: must be enclosed in []. 2013-06-17 22:43:18 +01:00
52ce55341b Fix Open Data Folder on unix
Mentioned in #646
2013-06-16 16:20:06 -03:00
e4b6f4b375 Refined IPv6 address matching in url.c. 2013-06-16 20:16:58 +01:00
32dee82c58 Added support for passwords in userinfo of urls. 2013-06-16 20:00:35 +01:00
2870586cf9 Fixed irc:// and ircs:// url matching: irc://freenode was not working because
"freenode" doesn't match a hostname.
2013-06-16 19:11:26 +01:00
cb1975f450 Fixed file:// url matching. 2013-06-16 19:09:50 +01:00
805b33552b Rework url matching to make it easier to add schemes.
The new way allows great control of what a url is composed of.

Added a bunch of new schemes.
2013-06-16 15:36:52 +01:00
6bc05a8bc8 Improved host matching in url:
* Refined ipv4 addr
 * Added ipv6 addr
2013-06-16 04:22:28 +01:00
3ffae231de Fix building with static spell 2013-06-15 21:52:04 -03:00
6a7557da01 Merge branch 'master' of http://github.com/hexchat/hexchat 2013-06-15 17:26:13 -07:00
d7045e2b61 Fix Fedora-19 Segmentation fault, bugid 968817. 2013-06-15 17:21:55 -07:00
e68635b8e4 Add configure patch from gentoo 2013-06-15 17:26:10 -03:00
7ef8d0d443 More autojoin wording tweaks 2013-06-13 20:53:55 -04:00
9b958ed393 Use snprintf 2013-06-13 18:38:59 -03:00
84e8c658f6 Tweak travis template 2013-06-13 15:33:25 -04:00
21a5eb2702 Formatting 2013-06-13 16:20:58 -03:00
1d62465e5b Add irc notifications to travis 2013-06-13 15:08:35 -04:00
cb1b1c6e1c Tweak autojoin wording 2013-06-13 15:55:38 -03:00
8be56d7003 Don't open libcanberra connection for every event
Closes #645
2013-06-12 10:41:52 -04:00
8ce1a9476d Merge pull request #640 from orium/default-language
Default language
2013-06-09 14:10:55 -07:00
0689b54827 Add irc_ban_type to preferences 2013-06-09 16:51:57 -03:00
b569943059 Specify what for completion amount 2013-06-09 16:01:00 -03:00
eb001433e4 Emit FOUNDIP in server session 2013-06-09 15:55:56 -03:00
a591c875ae Add completion_amount to prefs
... and remove completion_auto which is confusing to say the least.
2013-06-09 15:48:42 -03:00
08cd36bef0 Fix printing ipv6 addresses with identd
Closes #639
2013-06-09 10:42:42 -03:00
5d0599976e Add more mnemonics to the menu 2013-06-08 20:09:22 -04:00
2e014bbc72 Merge pull request #641 from orium/possible-buffer-overflow-fix
Fixed possible overflow in create_mask().
2013-06-08 02:45:00 -07:00
88e9611444 Minor cosmetic changes 2013-06-08 03:14:24 +01:00
97e88b885a Renamed tbuf to buf in create_mask() to avoid confusion. 2013-06-08 03:01:36 +01:00
f84476cf87 Fixed possible overflow in create_mask(). 2013-06-08 02:56:36 +01:00
473ab16739 Now the default configuration tries to set the language from the system
locale, and defaults to english if no language match.

This closes #473.
2013-06-08 02:34:01 +01:00
951292abe1 Change default irc_ban_type to 1 2013-06-07 09:55:56 -03:00
612032c9f8 Add QUIET command 2013-06-07 08:24:13 -04:00
0dd9ac2e44 Take two at fixing xtext copying to secondary clipboard 2013-06-07 08:20:36 -03:00
8f551de4f4 Merge pull request #636 from Remmy/master
Addition to the list of available IRC networks. Serenity-IRC is a small friendly network which has been around since 2003.
2013-06-07 01:31:41 -07:00
0c2e08cf2b Add Serenity-IRC to the list of networks available by default. 2013-06-07 04:58:34 +02:00
0e420fbee8 Save chanopt after any changes 2013-06-06 19:16:50 -04:00
cf505b850b Add chanopt for stripping colors 2013-06-06 17:47:01 -04:00
fd762303b0 Add autoconnect option to menu of networks 2013-06-06 16:49:57 -04:00
a6f05db34b Make autojoin a toggle menu 2013-06-06 16:12:59 -04:00
df0ee53765 Handle /CAP LIST output
Closes #635
2013-06-05 13:35:30 -03:00
d0b3476839 update help message for /menu 2013-06-05 08:27:16 -04:00
4d16f5bf28 Add missing gtk_tree_path_free() 2013-06-04 12:32:51 -03:00
c45cc78548 Add copy option to right click in banlist
Closes #626
2013-06-04 12:25:12 -03:00
d16aedf6c4 Merge pull request #634 from youknowone/ipv6
Retrieve reachable addresses only.
2013-06-04 05:04:48 -07:00
d3a27947fe Retrieve reachable addresses only.
AI_ADDRCONFIG helps not to try to connect unreachable ipv6 address if
user doesn't have ipv6 network stack.
2013-06-04 20:19:37 +09:00
42e3587fd5 copy xtext selection to all clipboards 2013-06-04 07:00:08 -03:00
e3f699a9d8 Improve error message from /load -e 2013-06-04 06:34:15 -03:00
5201f0fd06 Python: revert 43bd9483ce
Will possibly come back to this at a later time...
2013-06-04 06:13:28 -03:00
df0e97550b fix loading startup.txt automatically 2013-06-04 06:07:51 -03:00
983b4ace89 treat banlist event as a generic list event (for quiets etc) 2013-06-03 08:19:27 -04:00
f0684dc74e translate servlist tabs 2013-06-02 20:50:43 -04:00
39923e05f3 Rename favorite channels to autojoin channels 2013-06-02 20:44:05 -04:00
51bf9165b2 Merge pull request #633 from FionnK/master
Add IRCNode to network list
2013-06-02 17:27:50 -07:00
f1735f3ae1 Remove IPv6 check for IRCNode entry in server list. 2013-06-03 02:21:42 +02:00
2ba785f648 Add IRCNode to the server list. 2013-06-03 02:10:44 +02:00
c9b7a3f86e Python: return true/false from set/del_pluginpref 2013-06-02 00:29:34 -03:00
43bd9483ce Python: Save pluginprefs to seperate files 2013-06-02 00:22:00 -03:00
1277b4c30f be more specific about sysinfo menu entry 2013-06-01 19:06:58 -04:00
e1ce1c90f7 configure.ac: Use pkg-config's CFLAGS for libxml2 instead of guessing our own. 2013-06-01 13:46:33 -07:00
f45c2dd061 Add valleynode to network list
Closes #631
2013-05-31 20:12:21 -03:00
855c20501b fix crash 2013-05-30 22:23:00 -03:00
945251c6b8 add .js to list of loadable filetypes 2013-05-29 01:55:41 -03:00
e47dd3eb89 Don't send previous session's password
closes #616
2013-05-25 20:47:16 -03:00
c9c8993b9d Merge pull request #625 from orium/network-name-improve
Improved server_get_network()
2013-05-25 16:31:51 -07:00
d934e60c2b Improved server_get_network(): if we don't have the current network in the
network list use the server name in received in event 005.
(This fixes the problem that the network (%n) in the log file names would be
"NETWORK" instead of the real network name (this happened if the network was
not in the network list).)
2013-05-25 22:31:45 +01:00
11478719cd Merge pull request #624 from Niichan/master
PonyChat added to network list
2013-05-24 21:12:00 -07:00
7284addb09 Added PonyChat to network list 2013-05-24 21:01:06 -07:00
270cde42f1 Merge pull request #590 from orium/run-as-root-589-504
Now hexchat doesn't abnormally terminate when started as root.
2013-05-24 15:01:27 -07:00
b690098941 Merge pull request #622 from orium/null-ptr-favchan-fix
Fixed null pointer deref when we try to autojoin a channel
2013-05-24 14:07:14 -07:00
fffe9f4bd9 Restored inbound.c to make the pull request cleaner. 2013-05-24 22:04:34 +01:00
7353bf2698 Followed richtroye suggestion and implemented the net == NULL guard in
servlist_favchan_find().
2013-05-24 21:49:46 +01:00
133b0f7d94 Fixed null pointer deref when we try to autojoin a channel of a network not
in the network list.
2013-05-24 20:29:15 +01:00
4878012065 Merge pull request #621 from orium/dictionaries-update-fix
Spell check dictionaries were not being updated when changed
2013-05-24 08:53:48 -07:00
4402ea34de Fixed mistake in last commit. 2013-05-24 16:46:35 +01:00
faa53a5335 Spell check dictionaries were not being updated when changed. 2013-05-24 00:01:25 +01:00
44a88fc1ab Merge pull request #618 from orium/server-command-password-fix
Fix issue with /server command
2013-05-23 07:28:58 -07:00
d3ce4f64f6 Passing a password to the /server command was ignored because the login method
was not set.
2013-05-23 13:22:34 +01:00
fcdd85ae5e Merge pull request #603 from orium/lag-meter-stuck
Fix an issue where the lag meter could get stuck after reconnect
2013-05-22 17:17:28 -07:00
fd71bb768a Python: Allow unhooking commands and prints by name 2013-05-22 19:30:49 -03:00
66bb79ef10 Improve sort keybinding in servlist
also disable auto sorting on fav channels, closes #606
2013-05-20 13:19:20 -03:00
3b4cc9d806 Use png instead of svg 2013-05-20 15:59:41 +02:00
79221c403b Temporary workaround for reconnect crashes on win32
Yes, we really need to fix this ASAP
2013-05-20 14:39:24 +02:00
0ab11cc09a Add structs and use treeview 2013-05-20 13:21:27 +02:00
1432ecfb33 Sample code docs for challengeauth_response() 2013-05-20 12:38:50 +02:00
341cfbb527 Set up Doxyfile 2013-05-20 12:31:09 +02:00
78573ae0c9 Add default Doxyfile 2013-05-20 12:24:25 +02:00
8a9d3e21f2 Update dirent.h win32 implementation 2013-05-20 00:22:20 +02:00
8655c4b007 Reorganize Preferences 2013-05-19 20:43:21 +02:00
5fa23341b3 Avoid useless strdup() and free() calls 2013-05-19 12:17:37 +02:00
67274f91e9 Add default connect commands for networks with obscure login methods
Yeah, QuakeNet is an exception
2013-05-19 12:15:31 +02:00
c0cc6a2c93 Cosmetics 2013-05-19 11:49:27 +03:00
b2fec642fe Login type cleanup 2013-05-19 05:17:13 +02:00
d60cecb8d3 Add custom login type to avoid collisions 2013-05-19 04:34:20 +02:00
c168a9adc6 Add variables for user credentials in connect commands 2013-05-19 03:30:45 +02:00
f778245a86 Simplify SASL auth string generation code 2013-05-19 01:21:27 +02:00
5701ba287b Translate search window tooltips 2013-05-18 17:40:35 -04:00
c471388021 Don't use popup when search is not found 2013-05-18 17:32:41 -04:00
9d717ffee9 Fix text event for erroneous nicks 2013-05-18 22:09:44 +02:00
bac96d1fa8 Add FurryLand 2013-05-18 21:40:42 +02:00
f313a83474 Update Perl library name 2013-05-18 21:33:22 +02:00
9891f94e41 Rebrand python about message 2013-05-18 15:42:30 -03:00
a22ae9f39a Support time lists via python 2013-05-18 15:13:05 -03:00
02298c8e76 Fix prototype, return value is used by joindelay_tag 2013-05-18 19:48:54 +02:00
73badc67ff Fix warning from hwmon.c in plugins/sysinfo 2013-05-17 21:51:34 -07:00
1181b56211 Add omsg user command 2013-05-17 06:17:16 -03:00
78eb3e7522 Handle limited channel messages
Maybe improved later to signify they are limited messages. closes #315
2013-05-17 06:10:02 -03:00
57b74c3de9 Increase default irc_join_delay to 5 2013-05-17 05:32:53 -03:00
c83ca8f85a Respect irc_join_delay if connect command set 2013-05-17 05:28:45 -03:00
ef58a267b0 Omit CHALLENGE hashes in the server tab 2013-05-17 02:48:32 +02:00
4130954c15 Fix removing keys from favorites 2013-05-17 02:24:47 +02:00
0a2af0ab62 Fix crash when using global username for QuakeNet 2013-05-17 02:08:34 +02:00
a1a94ed319 Add support for QuakeNet /CHALLENGEAUTH, remove legacy /AUTH 2013-05-17 01:40:07 +02:00
096d0660e2 Merge pull request #594 from Tux/master
Allow the special colors 32..41 in %Cfg,bg
2013-05-16 10:50:43 -07:00
b28734c4a8 Merge pull request #581 from orium/numeric-session-with-open-query
Session of numeric events passed to text_emit() for nicks with open query dialogs
2013-05-16 09:21:02 -07:00
69c2893234 Merge pull request #586 from bviktor/authcleanup
Login and network list cleanup
2013-05-16 09:07:38 -07:00
89078eb3b3 Fix an issue where the lag meter would be stuck after a reconnect caused by a
ping timeout.
2013-05-16 15:11:52 +01:00
26cefd0587 Have rawlog properly handle newlines
This is most noticable with /cycle or the missing USER command on connect.
2013-05-16 09:21:55 +00:00
8ccd11ee4b Remove comment 2013-05-16 00:08:43 +02:00
fd1b276aab Make sure the created favchannel instances have a NULL key when the session's key is empty 2013-05-16 00:04:58 +02:00
2ff8e74061 Omit filler keys if no channel's using them 2013-05-15 23:52:14 +02:00
0020f81e79 Fix reconnect keys 2013-05-15 18:26:54 +02:00
6f09752db4 Cosmetics 2013-05-15 11:48:37 +02:00
8cf025f18d Fix autojoins for sessions 2013-05-15 11:43:38 +02:00
81990ce53b Change prototype 2013-05-15 08:49:28 +02:00
12cdb7704c Fix command splitting when the channel list is too long 2013-05-14 18:20:05 +02:00
947dd45294 Fix warnings 2013-05-14 16:52:16 +02:00
a435e8648f Fix initial autojoins and some erroneous copies/frees 2013-05-14 16:40:32 +02:00
25d0793766 Merge pull request #596 from Arnavion/python3-allow-unhook-within-hook
python: Hold a reference to plugin instead of dereferencing hook to get to it.
2013-05-14 01:33:50 -07:00
5c9652bf13 python: Hold a reference to plugin instead of dereferencing hook to get to it.
hook might have been free'd by the callback via hexchat.unhook().
2013-05-14 01:25:01 -07:00
7a242a8331 Allow the special colors 32..41 in %Cfg,bg
Text events allow %Cfg,bg as decribed in "Theming" on
https://hexchat.readthedocs.org/en/latest/appearance.html?#theming

That section describes mIRC colors 0-15 and local colors 16-31, but
when selecting background colors, the 9 special internal colors are
extremely useful, like %C20,33 will do bright red on the selected
text background color.

As the documentation is on-line, this patch has no doc-change.
Ideally, the color-codes should show in the colored squares in the
preferences color-dialog just as with colors 0-31

Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>
2013-05-13 15:26:33 +02:00
7cdfeff204 Add note about preferred tab size 2013-05-13 13:38:01 +02:00
83107ee222 Use macros instead of raw numbers for login type 2013-05-13 13:22:25 +02:00
d9d05e83ba Restructured a fair bit of cfgfiles.c. Besides making the code cleaner this allows
for better error handling (in fact the error message of check_prefs_dir () whould
make hexchat abort).
2013-05-13 01:58:08 +01:00
631664645d Add "#define GLIB_DISABLE_DEPRECATION_WARNINGS" to eliminate a warning message 2013-05-12 17:25:43 -07:00
61ed0829bd Forget to put an empty line after a function definition 2013-05-12 23:33:44 +01:00
f023de0faf Removed unnecessary call to check_prefs_dir() in load_config().
This function is called in save_config(), where it is actually needed.
2013-05-12 23:25:36 +01:00
7238853f0f Factored locale related code in main() to a new function. 2013-05-12 23:15:23 +01:00
6a8cad6f94 Now hexchat doesn't abnormally terminal when started as root.
This fixes #589/#504.
2013-05-12 16:37:38 +01:00
2c15270be1 Remember selected tab 2013-05-12 16:59:21 +02:00
c044bdfe32 Fix warning 2013-05-12 16:38:31 +02:00
aac7079562 Add code for migrating existing configs 2013-05-12 16:38:21 +02:00
cadcfc553c Cosmetics 2013-05-12 16:37:32 +02:00
5df669a329 Make the order consistent for load and save 2013-05-12 16:02:26 +02:00
4c307f6ac9 Add auto-reconnect to preferences 2013-05-12 04:08:01 -04:00
37aa38617e Merge pull request #588 from Repentinus/patch-2
Fixed misleading comments identifying the colours
2013-05-12 00:00:08 -07:00
07acb6f7b6 Fixed misleading comments identifying the colours
Replaced incorrect numbers (16 to 31) for mIRC colours with the correct ones (0 to 15).
2013-05-12 05:50:52 +00:00
9c96528a98 Remove unused variable 2013-05-12 06:19:42 +02:00
9327a5c71f Reduce GLib requirement 2013-05-12 06:16:26 +02:00
171dbcdedf Remove dead GLib code 2013-05-12 05:58:16 +02:00
de819e12bf g_slist_copy_deep() requires GLib 2.34 2013-05-12 05:55:14 +02:00
198dc9eb43 Fix favorite channels except in inbound.c 2013-05-12 05:44:32 +02:00
04d282fae3 Fix crash when quickly attaching/detaching tabs 2013-05-11 23:07:42 -03:00
bb86771425 Add explanation as well 2013-05-11 20:47:39 +02:00
791e0fc11f Make login type more intuitive and disable unused /NS 2013-05-11 20:42:29 +02:00
0badd9b874 Remove dead code 2013-05-11 20:09:07 +02:00
af03fa3c7c Fix connect commands 2013-05-11 20:06:22 +02:00
4d30512e05 Fix layout when resized 2013-05-11 16:30:45 +02:00
d5e8fa47f0 Allocate all extra vertical space to the treeviews 2013-05-11 16:21:38 +02:00
85c7e07351 Set up window sizes correctly 2013-05-11 15:58:52 +02:00
fde85c79df Reorganize the network editor 2013-05-11 15:22:28 +02:00
712eb5428e GtkComboBoxText requires GTK+ 2.24, dump code for older versions 2013-05-11 13:06:25 +02:00
5c663adf35 Reorganize a bit and fix spacing 2013-05-11 12:56:26 +02:00
68fa033483 Re-enable resize 2013-05-11 11:54:42 +02:00
b33f70571e fix error 2013-05-11 09:31:56 -04:00
cdc2bb0216 serverlistgui cleanup 2013-05-11 09:20:03 -04:00
250d9b565c Merge pull request #582 from Repentinus/patch-1
Support for away tracking regardless of channel size
2013-05-11 02:10:42 -07:00
6e7c0395e1 Merge pull request #585 from rahatarmanahmed/master
Added help text to sysinfo
2013-05-10 21:38:10 -07:00
be35154376 Added help text for sysinfo plugin. 2013-05-10 23:32:29 -05:00
de2fdc093a Cosmetics 2013-05-11 04:19:18 +02:00
3679dfe93e Make logmask consistent with scrollback mask 2013-05-11 04:18:44 +02:00
2e1425451d Remove some redundancy 2013-05-11 03:13:50 +02:00
0e1da0d33d Also disable labels, not just entries 2013-05-11 03:02:31 +02:00
7b0b86c9f7 Nuke nickserv password field and some cosmetics 2013-05-11 02:40:08 +02:00
a98b95923b Get rid of this unnecessary buffer 2013-05-11 02:00:32 +02:00
cf3d1ebb8b Skeleton for tabbed ui 2013-05-11 01:20:53 +02:00
5db1541f95 Reorganize the network list 2013-05-11 00:49:04 +02:00
873a3ef047 Replace various network options with universal login method option 2013-05-10 23:52:47 +02:00
beb3ab506d Import hexchat automatically when calling /py exec 2013-05-09 23:45:04 -03:00
494364d437 Fix returning gtkwin_ptr from python api 2013-05-09 22:55:06 -03:00
2f1f2c6a85 Added support for marking nicks that are away in different colour when away_size_max = 0, but tracking enabled. 2013-05-09 23:04:46 +00:00
66853d9715 Add option to support away tracking regardless of channel size
As there is option to disable away tracking, it would make sense to treat channel size limit of 0 as infinity for away tracking purposes. These changes attempt to implement this.
2013-05-09 21:11:58 +00:00
cf59ad2c76 Now process_numeric() passes the right session context to text_emit() when an
numeric event occurs regarding a nick with a open dialog.

Since this session context is potentially passed to plugins this can change the
behavior of plugins, but I think this is the intended semantics
(http://docs.hexchat.org/en/latest/script_python.html#context-theory).

Another consequence is that event messages will be displayed in the query dialog
of the nick in question (if a query dialog is open, of course), which I think is
sensible. (The initial intention of this patch was actually to report the
"No such nick" message in the query dialog when sending a message to a user that
has quit.)
2013-05-09 20:32:05 +01:00
dba9c42473 stop using gconf 2013-05-08 23:41:52 -04:00
f8556360ca Merge pull request #580 from hasufell/master
Build failure: fix undefined reference to `g_type_init'
2013-05-08 20:33:40 -07:00
28fe051aa5 Fix server tab changing color when active 2013-05-08 23:56:03 -03:00
607e5a567c CONFIGURE: fix undefined reference to `g_type_init'
These two assignments have no place here and will overwrite the
previous COMMON_LIBS="$COMMON_LIBS -lgmodule-2.0 -lgobject-2.0".
This can lead to build failure during linking stage depending on
the chosen configure options.
2013-05-09 01:48:10 +02:00
df31e239a9 add pkgconfig file to gitignore 2013-05-08 19:22:04 -03:00
df7a15e910 Show hours for last seen in friends list
closes #579
2013-05-08 19:08:37 -03:00
860ef759f5 Have gui_input_icon depend on gui_input_nick in prefs 2013-05-07 23:28:59 -03:00
4ba79fd489 Clean up IRCNet 2013-05-06 00:53:07 -03:00
fb01d4e9ab Replace g_strdup_printf with g_build_filename where possible 2013-05-04 18:21:48 +02:00
b2317d8800 Typofix 2013-05-04 17:40:48 +02:00
3283c71936 Use system include syntax 2013-05-04 17:40:23 +02:00
22a0d5a3fb Add Python major version to plugin description 2013-05-04 17:39:24 +02:00
46443cbd1c python: fully delete failed plugins 2013-05-04 02:02:10 -03:00
efd21ce982 fix possible crash 2013-05-04 00:00:48 -03:00
c4e96dd481 Fix output name 2013-05-04 02:57:03 +02:00
65e384523a Make copy depend on python3 as well 2013-05-04 02:41:53 +02:00
80aee2af6c Fix VS edition 2013-05-04 02:35:38 +02:00
1f525a6f4b Merge branch 'py3k' of git://github.com/TingPing/hexchat 2013-05-03 20:32:23 -04:00
ffa1ea7358 Add python3 plugin 2013-05-03 20:26:58 -04:00
ce7eb02601 Consistency 2013-05-04 03:24:30 +03:00
ce80e571f2 comma 2013-05-03 17:14:31 -03:00
11044c6264 update gamesurge's default nickserv type 2013-05-03 17:13:35 -03:00
7243f5bc2c Merge pull request #565 from bviktor/nickservtype
Make NickServ registration configurable per-network
2013-05-03 09:19:01 -07:00
863ff811e6 Don't make assumptions about the function being called 2013-05-03 18:12:36 +02:00
414ab39db5 Add Italian GenericName 2013-05-03 13:08:03 -03:00
ba78c0527f Fix QuakeNet registration 2013-05-03 18:00:30 +02:00
fb696b7a68 Provide default NickServ types where necessary 2013-05-03 17:23:36 +02:00
295da18414 Merge pull request #571 from amalmurali/master
Update textevents.in
2013-05-03 07:26:42 -07:00
8272df5ec2 Fix desktop translations
closes #567
2013-05-03 11:24:12 -03:00
99fed089cf Line breaks and typofix 2013-05-03 15:54:18 +02:00
e3fd501057 Do save_config() on Channel List window min, max changes
#570
2013-05-01 12:47:53 -07:00
7403dfa9aa Do save_config() on Search-window checkbox change
#570
2013-05-01 12:25:29 -07:00
b08d9cfb56 Fix warning about g_type_init() in dbus/example.c 2013-05-01 12:12:05 -07:00
1969db5f94 Save nicks when closing network list
#570
2013-05-01 10:36:16 -03:00
866299b508 Update textevents.in
Corrected text events for Channel Invite and Channel Remove Invite
2013-05-01 13:53:10 +05:30
c4384265e4 remove incorrect notice help info 2013-04-30 21:27:41 -03:00
b4c885861d Remove away announce 2013-04-28 17:19:26 -04:00
d9be5e098f Remove useless slash 2013-04-28 21:32:47 +02:00
0a54efdd0c Make NickServ registration configurable per-network
Fixes #394
2013-04-28 21:24:53 +02:00
708c5a7347 Make /msg nickserv the default registration type
Fixes #394 and hopefully doesn't break others
2013-04-28 17:03:41 +02:00
50373f4ff9 Get rid of some hardcoded network recognition 2013-04-28 17:01:37 +02:00
2df866bdf8 Don't autoload WMPA, it's dead in the water 2013-04-28 16:50:19 +02:00
5b8567919d Install a pkgconfig .pc file. This allows external plugins to find
where the header file is located, where Hexchat expects to find
plugins so it can load them at startup and which version of
Hexchat is installed. The path where pkgconfig files are stored
is determined by a macro available in newer versions of pkgconfig
which can be overridden by the --with-pkgconfig= configure switch.
However, if this macro is unavailable (older versions of
pkgconfig) then m4ifdef will make it fallback to simply use
${libdir}/pkgconfig (which is the default).

	modified:   configure.ac
	modified:   share/Makefile.am
	new file:   share/pkgconfig/Makefile.am
	new file:   share/pkgconfig/hexchat-plugin.pc.in
2013-04-28 16:48:32 +02:00
77cad8e716 Don't hardcode "plugins" as the subdirectory for plugins in many
places.

	modified:   config-win32.h
	modified:   configure.ac
	modified:   plugins/checksum/Makefile.am
	modified:   plugins/doat/Makefile.am
	modified:   plugins/fishlim/Makefile.am
	modified:   plugins/perl/Makefile.am
	modified:   plugins/python/Makefile.am
	modified:   plugins/sysinfo/Makefile.am
	modified:   plugins/xdcc/Makefile.am
	modified:   src/common/plugin.c
	modified:   src/fe-text/fe-text.c
2013-04-28 16:42:48 +02:00
700d699f5b Cosmetics 2013-04-28 15:30:08 +03:00
87413e9d3c Add hints about the beep file 2013-04-28 05:31:45 +02:00
dbe6deab45 Rename Sound to Sounds and reorder Chatting pages 2013-04-28 04:57:01 +02:00
b2ae3b9dd1 Update gtkrc 2013-04-28 05:47:20 +03:00
92dca50dfc Eliminate compiler warning
free() requires stdlib.h
2013-04-28 04:19:31 +02:00
a3ba8d575e Store just the filename if the sound file comes from the default sound dir
And get rid of some hardcoding while we're at it
2013-04-28 04:12:00 +02:00
ea48d18130 Fix spacing 2013-04-28 03:06:02 +02:00
4547719358 Update .travis.yml 2013-04-27 21:29:33 -03:00
bb878848f7 Use regular canberra not gtk 2013-04-27 20:28:39 -04:00
5bb284267b Remove dead code for sound_command 2013-04-28 01:57:00 +02:00
7e3c8c461e Escape all the things 2013-04-27 20:38:39 -03:00
24034b5b8b More cleanup 2013-04-27 20:35:04 -03:00
78f9f3f87c clean up canberra code 2013-04-27 20:29:28 -03:00
bc1169e979 Use canberra for files 2013-04-27 20:02:27 -03:00
012105e115 Let's just say the word 2013-04-28 00:56:24 +02:00
5c5eb1df14 udpate travis build w/ canberra 2013-04-27 19:19:26 -03:00
e714c7d53f Remove extra omitalerts check 2013-04-27 19:16:34 -03:00
78e39bfb1c use libcanberra for beeps 2013-04-27 18:05:05 -04:00
7323f7c561 Fix unused variable 2013-04-27 23:28:24 +02:00
c6513ea7a2 Use "Instant Message Notification" system sound on Windows, use gdk_beep() on Unix
Note: gdk_beep() is expected to be replaced with libcanberra stuff.
2013-04-27 23:26:26 +02:00
6001ceff9f Get rid of bundled beep 2013-04-27 23:00:18 +02:00
8e3db00dac Don't include if unused 2013-04-27 21:38:13 +02:00
d20dccbe02 Some crucial cosmetics 2013-04-27 21:35:19 +02:00
e834783cb8 Fix compiler warning 2013-04-27 21:31:54 +02:00
01f24aae07 Don't use external players on Windows 2013-04-27 21:07:34 +02:00
584dc6a626 typo 2013-04-27 15:52:18 -03:00
756080831d fix url opening on osx
oops
2013-04-27 15:47:40 -03:00
ffce6c5788 Clean up old url handling on unix 2013-04-27 15:30:40 -03:00
565a492724 Reverts commit d964af8142 2013-04-27 06:32:30 -04:00
6982bbfef9 fix false positives when checking chanopts 2013-04-26 09:37:14 -03:00
07bc467d03 win32: Moved PlatformToolset configuration to individual project files. It should be set before setting other properties or importing other props.
This fixes the broken GUI Platform Toolset indicator, as well as VS compilation itself if another version such as 2010 was also installed.
2013-04-25 21:03:03 -07:00
a39f8ea71f Do not allow blank realname in preferences 2013-04-25 04:51:19 -03:00
4ad9a69aeb Early on, call g_type_init() unless deprecated 2013-04-24 14:33:05 -07:00
ee200b97aa Fix left-click of URL/HOST by tidying what we pass to fe_open_url() 2013-04-24 13:18:34 -07:00
fc659a67f0 Merge pull request #561 from RichardHitt/no-depr-decl
Add '#define GLIB_DISABLE_DEPRECATION_WARNINGS' to fix fkeys.c warnings
2013-04-24 12:27:53 -07:00
de0b0b9467 Merge pull request #560 from RichardHitt/warning-fix
Add '(void)'  to fix perl.c unused-value warning message
2013-04-23 18:33:49 -07:00
eef74ed263 Add '#define GLIB_DISABLE_DEPRECATION_WARNINGS' to fix fkeys.c warnings 2013-04-23 12:46:32 -07:00
facf0ab9c4 Add '(void)' to fix perl.c unused-value warning message 2013-04-23 12:09:05 -07:00
5318c953ed reduce abuse of ternary operator
The ?: operator should not be used as a generic shorthand for if/else.
(Which isn't needed here either...)
2013-04-23 01:09:58 -04:00
2550a94f05 fix omitting custom sounds 2013-04-23 00:45:37 -04:00
bd73c80152 Clean up balloon formatting 2013-04-22 20:13:34 -03:00
43cbe83d61 fix warning in new glib 2013-04-22 18:04:26 -03:00
075c5dfad6 Merge pull request #556 from RichardHitt/ignore-unused
Fix Ubuntu build warnings by using gcc flag -Wno-unused-result
2013-04-22 13:54:45 -07:00
ba1dfabf11 Fix Ubuntu build warnings by using gcc flag -Wno-unused-result 2013-04-22 11:22:04 -07:00
9603248a5b Fall back to global username for sasl 2013-04-22 07:30:33 -03:00
4e891102f2 Merge pull request #550 from RichardHitt/issue440a
In do_an_re() put WORD_CHANNEL before WORD_HOST.  fixes #440
2013-04-20 17:05:18 -07:00
bc1c84347d fix install error 2013-04-20 18:37:30 -03:00
2db01371b3 Build with travis 2013-04-19 15:55:14 -04:00
e17a9c6503 In do_an_re() put WORD_CHANNEL before WORD_HOST. fixes #440 2013-04-19 12:41:49 -07:00
3994126a09 Add english generic name 2013-04-18 01:21:12 -03:00
70174be823 Fix a typo.
modified:   share/misc/hexchat.desktop
2013-04-18 00:14:40 -04:00
9254f9284c Add GTK and IRCClient to Categories. This is Based on:
http://standards.freedesktop.org/menu-spec/latest

	modified:   share/misc/hexchat.desktop
2013-04-18 00:11:17 -04:00
c819adf830 Translate Comment in french, german, italian and norwegian bokmål
modified:   share/misc/hexchat.desktop
2013-04-18 00:10:54 -04:00
13c717159d Change "no" to "nb" for Norsk Bokmål. In norway there is not only
one official language but two.

	modified:   share/misc/hexchat.desktop
2013-04-18 00:10:14 -04:00
4c90a9b2d5 Change most Comment lines to be GenericName. GenericName should be
used when only one IRC client in installed.

	modified:   share/misc/hexchat.desktop
2013-04-18 00:09:52 -04:00
a14bd119b7 typo 2013-04-17 22:45:08 -03:00
f9cf25f797 Use more useful example for url handler 2013-04-17 22:39:50 -03:00
450b92f6c0 add paplay 2013-04-17 06:13:34 -03:00
9790151ec0 beep sound is gtk only 2013-04-17 06:02:17 -03:00
3fbea449b5 g_file requires gio 2013-04-17 05:45:51 -03:00
02cdc57eb5 Install sound file on unix
for #542
2013-04-17 03:45:41 -04:00
d7571ce1e3 Update installers as well 2013-04-16 11:35:22 +02:00
ccc8601624 Move beep to proper place 2013-04-16 11:32:58 +02:00
7e2ae20ecf only 1 2013-04-15 22:10:25 -03:00
b856065167 fix warning 2013-04-15 22:03:03 -03:00
f3efdaf40f finish removing sound_dir 2013-04-15 18:16:51 -03:00
86564c8741 Merge pull request #545 from RichardHitt/issue522
Fix broken logic in mg_word_clicked().  fixes #522
2013-04-15 13:54:00 -07:00
a5eb7784c6 Fix broken logic in mg_word_clicked(). fixes #522 2013-04-15 12:05:53 -07:00
f0d0f90e13 no error on beeps 2013-04-15 00:12:06 -03:00
27d828172d try play first. 2013-04-14 17:54:28 -03:00
a7ffdf3d65 Remove one warning bypass 2013-04-14 13:19:49 +02:00
dd624950c6 Eliminate compiler warning 2013-04-14 13:15:10 +02:00
b407bfa168 Fix missing first letter in busy server error popup 2013-04-14 13:11:35 +02:00
069a6adb19 If no path given, try to load plugins from config dir, not from install dir 2013-04-14 12:55:02 +02:00
9dd2c85df4 Load connect commands from config dir 2013-04-14 12:31:27 +02:00
b7f0f6abc8 Fix tabulation 2013-04-14 12:11:38 +02:00
ea0479998a Use bundled beep file for beep alerts 2013-04-14 11:56:50 +02:00
9272eb4325 G_FILE_COPY_TARGET_DEFAULT_PERMS requires GLib 2.20+ 2013-04-14 11:00:01 +02:00
4e601cf14c Browse into the sounds folder by default 2013-04-14 10:52:34 +02:00
db582a4e5c Remove sound_dir, it's pointless 2013-04-14 10:47:37 +02:00
059e4ec9c8 Add default beep sound, deploy on Windows
FIXME on Unix yet
2013-04-14 10:30:51 +02:00
a96be226b2 Really relocate 2013-04-14 10:15:52 +02:00
bed00e525d Relocate plugin icons 2013-04-14 10:14:17 +02:00
096e837ece Add accounts to users in get_list 2013-04-14 00:33:03 -03:00
e67371d269 Add option for omitting alerts while focused 2013-04-13 23:03:54 -04:00
a996549577 Rewrite desensitizing options in preferences 2013-04-13 20:54:42 -04:00
9917b7e3df hook reload command 2013-04-13 02:02:57 -03:00
541f221a61 fix crash after reloading script 2013-04-13 02:01:04 -03:00
44a2ed5a97 Fix possible crash
Thanks to - http://forum.xchat.org/viewtopic.php?f=5&t=7558
2013-04-12 23:08:02 -03:00
ba3f4daee8 Rebrand object types 2013-04-12 22:58:29 -03:00
2d3d4db16b Nuke last Tcl and SASL remnants 2013-04-13 04:27:10 +03:00
0c351c9cbc Nuke WMPA, not supported by Express 2013-04-13 02:38:44 +02:00
cc1f2b2d27 Fix last filename
Left here to make changes trackable
2013-04-13 02:27:02 +02:00
6ee3a4a978 Get rid of multiple Perl versions 2013-04-13 02:27:01 +02:00
5326f76a40 Fix tray not respecting away_omit_alerts 2013-04-12 19:59:46 -03:00
7f86fbad1e We ship bundles, this is unnecessary too 2013-04-12 18:05:54 +02:00
30fa189cbb We don't release git head anymore, github does that for us 2013-04-12 18:05:28 +02:00
2fdb2a8b6f Revert "win32: Fixed YourDepsPath."
This reverts commit b07e5fafaf.
2013-04-12 18:04:22 +02:00
b07e5fafaf win32: Fixed YourDepsPath. 2013-04-11 21:59:58 -07:00
ba1a1ab28d Don't call it package, it causes line break 2013-04-11 17:44:33 +02:00
a9643234ae It's official: VS2012.2 needs VS2012.1 redist 2013-04-11 14:03:27 +02:00
7870c8028f warning 2013-04-10 15:41:29 -03:00
6510e8961e Delete left over themes 2013-04-10 14:39:43 -03:00
6e8b7367d7 comma 2013-04-10 13:43:22 -03:00
feb5b41642 Readd irc charset to the list 2013-04-10 13:27:53 -03:00
36694afe0e Don't send ping's to the server if we are still waiting for a pong.
If the server don't respond in 30s just report the lag as +30s.

This fixes the bug where hexchat reset the lag meter every time a ping
was sent and no pong was received.
2013-04-09 19:14:46 -07:00
a99111172d Merge pull request #527 from grawity/cap-req-sasl
Request 'sasl' even if it's the only recognized cap
2013-04-09 17:50:26 -07:00
780c3d29c7 Request 'sasl' even if it's the only recognized cap 2013-04-10 02:43:09 +03:00
1a7831df2a Fix spelling checkbox with libsexy 2013-04-09 12:28:44 -03:00
924178cde7 cosmetics 2013-04-09 03:08:26 +02:00
77fa72924b readme cleanup 2013-04-09 03:06:07 +02:00
b90633d406 Fix deps path 2013-04-08 22:39:35 +02:00
cd64e02096 Use EAT_HEXCHAT on hexchat module 2013-04-08 17:23:07 -03:00
ad820cef8a Give both modules the version too. 2013-04-08 17:16:32 -03:00
68de2bcb00 Add constants to both modules 2013-04-08 17:09:36 -03:00
68b6be11d6 Add hexchat module to python interface 2013-04-08 17:07:13 -03:00
d13ae114a2 Handle numeric 900 2013-04-08 16:52:14 -03:00
3a6103564e Merge pull request #516 from Misdre/optout-extra-alerts
Closes #290 - opt-out for extra alerts now working
2013-04-08 10:35:53 -07:00
0424e5a329 Closes #290 - opt-out for extra alerts now working 2013-04-08 19:19:55 +02:00
561ad635cd Merge pull request #515 from Misdre/optin-optout-scrollback
fix issue #491 - opt-in/opt-out of scrollback per channel
2013-04-08 08:04:48 -07:00
2427c095e5 fix issue #491 - opt-in/opt-out of scrollback per channel 2013-04-08 15:07:58 +02:00
ed27009285 Notify away status of friends 2013-04-07 20:41:29 -04:00
92654bdd9b Make copy depend on perl-5.18, not perl-5.16 2013-04-08 02:31:47 +02:00
fdf7ec22f5 I might regret this, but let's do the brave jump 2013-04-08 01:12:19 +02:00
3c4a154f0a Add events for quiet 2013-04-07 17:49:30 -04:00
c766b24920 Merge pull request #508 from Misdre/split-long-action-notice
Long ctcp action/notice split
2013-04-07 12:40:29 -07:00
af652a6639 Merge pull request #510 from RichardHitt/allownick
Allow nick starting with digit despite rfc 2812 violation
2013-04-06 15:53:21 -07:00
812628acb2 Update textevents.in 2013-04-06 17:30:19 -03:00
6b86940b7b Allow nick starting with digit despite rfc 2812 violation 2013-04-06 11:51:22 -07:00
08d948435d split cmd_msg too 2013-04-06 01:11:28 +02:00
5004f69b5e 'splitted' is'nt a word 2013-04-06 00:11:45 +02:00
bc5d16c4fb split long message on action and notice 2013-04-05 23:14:51 +02:00
c2a5b4fb7d Disable esc keybinding on tabbed utils 2013-04-05 17:33:35 -03:00
cca8ab4640 Fix esc closing detached util tabs 2013-04-05 16:56:57 -03:00
d964af8142 Fix root user warning running before g_type_init
closes #504
2013-04-05 10:12:33 -04:00
7746ff9a12 Fix manpage EOL 2013-04-05 06:38:12 +02:00
c4cf67bee4 Merge pull request #501 from gusnan/master
Minor spelling fix
2013-04-04 08:20:29 -07:00
a1daf03538 Fix spelling seperate/separate 2013-04-04 17:11:05 +02:00
2be0530c34 get account from whois 2013-04-04 10:29:15 -03:00
b0d1c884e0 regular who doesn't send account 2013-04-04 05:07:42 -04:00
e0a7f0ae59 Fixed compiler error. 2013-04-04 01:56:40 -07:00
5779691efb Update hiding menu text 2013-04-03 20:35:42 -03:00
496ed18e85 Add MONITOR support 2013-04-03 18:51:54 -04:00
86cf7de430 add %u to userlist popups for account 2013-04-03 18:10:14 -04:00
477d7470c1 renable irc_who_join by default 2013-04-03 18:35:40 -03:00
3706b51159 Fix realname 2013-04-03 18:28:00 -03:00
b4c8d53394 Support account-notify and extended-join capabilities 2013-04-03 17:10:09 -04:00
4c217d4ba3 Merge pull request #448 from TingPing/awaynotify2
Add away-notify support
2013-04-03 12:12:26 -07:00
23b2081385 update man page
Close #498
2013-04-03 15:11:43 -03:00
0534b54e51 Remove strlutil 2013-04-03 16:48:03 +02:00
faf4575e9a Enable cast checks 2013-04-02 23:58:43 -07:00
52efe3abff Add missing declaration 2013-04-02 23:57:43 -07:00
59510cf8a1 Move Perl from hexchat to gtk-win32 2013-04-03 08:05:26 +02:00
905705910b Remove hardcoded clear keybinding
You can re-add this easily in settings > keyboard shortcuts
2013-04-03 02:50:57 -03:00
bb78d8dd59 Add new window keybinding 2013-04-03 02:41:59 -03:00
8b72d53dcc Merge pull request #496 from bviktor/toplevel-includes
Only include top level includes from GTK+, GLib and GDK-PixBuf Closes #486
2013-04-02 22:39:17 -07:00
ef4aa16730 Apply to fe-text too 2013-04-02 22:37:24 -07:00
14b089ef90 Set up CFLAGS on Unix too 2013-04-02 22:35:42 -07:00
b5fef8d0e2 gtk_show_uri() requires GTK+ 2.14 2013-04-03 06:49:57 +02:00
561f3044d6 update --url help string 2013-04-03 01:36:52 -03:00
9c49254abd Only include top level includes from GTK+, GLib and GDK-PixBuf 2013-04-02 20:39:37 -07:00
5e59578e28 Remove most of HexTray and one instance
You can still build HexTray manually if you want to try fixing it
2013-04-02 11:56:08 -07:00
7317535c28 Fix textfe with dbus disabled 2013-04-02 09:06:47 -03:00
920839cf1c fix strptime on bsd 2013-04-02 08:06:38 -03:00
d8eec06473 Missing include
#492
2013-04-02 07:50:08 -03:00
4748405277 This is useless too 2013-04-01 21:28:54 -07:00
13d574b455 Revert XP version check; as it turned out, it's completely irrelevant now
This reverts commit cd2f775fe4.
2013-04-01 21:15:46 -07:00
2b13d0f527 Apparently XP won't work anymore, Uniscribe problem with the redistributable 2013-04-01 20:51:40 -07:00
e054a6512f We all knew I'll forget something, right? 2013-04-01 18:33:12 -07:00
408a29d66a Version bump 2013-04-02 03:07:55 +02:00
bddbb4581e Open the redist download page by default for the first MSVC release 2013-04-02 00:30:28 +02:00
dfc982b15f Don't open the same link twice 2013-04-02 00:23:06 +02:00
750e41ae61 Open downloads for Perl and Python 2013-04-02 00:17:02 +02:00
38d318ec26 Pull from Transifex 2013-04-01 23:38:04 +02:00
c8f8a26c9c Add future Perl 5.18 project 2013-04-01 23:21:41 +02:00
f58dc56949 Purge Lua and Tcl from the solution too 2013-04-01 22:58:00 +02:00
df46cd597b Version info cleanup 2013-04-01 22:55:53 +02:00
190a56684a Fix detecting python3 2013-04-01 07:02:48 -03:00
d8409cae72 add missing fi 2013-04-01 06:05:59 -03:00
083710d8d3 Merge pull request #484 from Phr33d0m/master
A few fixes on the *nix build system
2013-04-01 02:05:23 -07:00
9594ec8913 use proper table size 2013-04-01 03:54:42 -03:00
6490a206a0 Remove Tcl junk, cosmetics 2013-04-01 05:39:05 +02:00
71b5b4ee37 Last cjstyles remnants 2013-04-01 05:20:35 +02:00
14aaebcc86 Remove old stuff, some preparation for soon-to-be-released Perl 5.18 2013-04-01 05:17:37 +02:00
49e863e97a Tabulation with spaces is annoying! 2013-04-01 05:10:23 +02:00
110a2625fe Remove another bunch of obsolete junk 2013-04-01 05:05:33 +02:00
b70062d6d2 Nuke Lua and Tcl 2013-04-01 04:51:34 +02:00
abd20c25dc Get rid of installer skinning 2013-04-01 04:43:47 +02:00
22cf9cb005 Last one 2013-03-31 22:38:52 -03:00
984ec135d3 Another missing include.. 2013-03-31 22:32:35 -03:00
cf3a7a6a49 Add missing include 2013-03-31 22:18:44 -03:00
7e5e837a24 Cosmetics 2013-04-01 03:08:39 +02:00
0f20423455 Consistent header macros everywhere 2013-04-01 01:02:03 +02:00
4de6db6c47 Disable Unix path detection mechanism 2013-04-01 00:24:42 +02:00
ed9245add2 Use C# style license comments 2013-03-31 22:07:05 +02:00
aa03b113f4 Revert "Cosmetics"
This reverts commit a88b3e8aaf.
2013-03-31 22:05:17 +02:00
a88b3e8aaf Cosmetics 2013-03-31 22:00:47 +02:00
3c1bd3cff0 Supposed fix for license issues
I have no clue what to put here so I'll just use what the About dialog
provides (unless specified otherwise in the file)
2013-03-31 21:45:05 +02:00
20ecd106d2 Merge pull request #485 from RichardHitt/urlgrab
Don't clobber data, just adjust url endpoint
2013-03-31 12:22:08 -07:00
3fee94473b Don't clobber data, just adjust url endpoint 2013-03-31 12:14:52 -07:00
f285cf85eb Merge pull request #483 from gusnan/master
Fix build error with DEB_BUILD_HARDENING_FORMAT
2013-03-31 09:44:30 -07:00
bda48b1889 GLib 2.14 is required 2013-03-31 18:32:45 +02:00
8fb4bfb288 Fix error: format not a string literal and no format arguments [-Werror=format-security] 2013-03-31 17:48:47 +02:00
83a5996817 MAKE: install hexchat-plugin.h header if plugins are enabled 2013-03-31 17:01:56 +02:00
9ae63cf05d MAKE: don't include icons and desktop file for non-gtk builds 2013-03-31 16:59:49 +02:00
ae5d7e29e3 CONFIGURE: allow to pass specific python version
This is useful if distros support installing multiple python versions
in parallel such as: 2.5, 2.6, 2.7.
For python3.* we will get syntax error during the imports, so the checks
will successfully disable it.
It defaults to python2.
2013-03-31 16:57:26 +02:00
477bbbb340 CONFIGURE: don't enable gconf schemas when gtk is disabled
This is nitpicky, since we could assume the user wants gconf schema if
gconftool-2 is available. However this can be a wrong assumption.
2013-03-31 16:52:20 +02:00
212adf63ce CONFIGURE: fix configure when gtk+ is not installed
AM_PATH_GTK_2_0 would be an undefined macro then
2013-03-31 16:35:02 +02:00
f317076cb2 Merge pull request #479 from RichardHitt/urlgrab
Strip all \r and \n, not just a single \r.
2013-03-29 13:16:32 -07:00
503968c1fd Strip all \r and \n, not just a single \r. 2013-03-29 13:11:17 -07:00
1ed3879c4f Regenerate from Transifex 2013-03-29 21:03:50 +01:00
c6b77ab151 Fix L10n borkage 2013-03-29 20:42:50 +01:00
ff529244a5 Update links to docs 2013-03-28 21:10:00 -03:00
344a5d36b1 Some more l10n 2013-03-29 00:21:05 +01:00
76a8519f80 Update translations 2013-03-29 00:06:15 +01:00
046cecb242 Update template generation instructions 2013-03-29 00:00:18 +01:00
abda42dbee update translation template 2013-03-28 23:56:38 +01:00
cecd951e76 Update textevents.in 2013-03-27 18:49:14 -03:00
7ac870cd29 Bump glib requirement
For gregex mentioned in #371
2013-03-27 04:53:55 -03:00
611ae75fed Add SpotChat network
Closes #462
2013-03-27 04:14:18 -03:00
2e4a086ed0 Merge pull request #476 from tehsu/master
Add snyde network
2013-03-27 00:08:37 -07:00
785455ccc0 fix warning 2013-03-27 04:05:38 -03:00
62c7a743a7 Only check for key if there is a channel 2013-03-27 02:23:51 -03:00
8424c32b4a Update servlist.c 2013-03-26 20:34:32 -05:00
a9b9c036b6 Updated with more networks 2013-03-26 19:45:22 -05:00
6ec92de598 Merge pull request #474 from RichardHitt/banlist-h
Switch struct defns, to fix a seeming compiler bug
2013-03-25 16:29:26 -07:00
eda9303ec9 Remove old CAPAB stuff
We already check for identify-msg elsewhere
2013-03-25 19:17:44 -04:00
a41924d79e Switch struct defns, to fix a seeming compiler bug 2013-03-25 16:16:51 -07:00
e9a3528bbd Disable tray when using Unity 2013-03-25 02:41:13 -04:00
1c929cd694 Fix warning 2013-03-25 03:17:58 -03:00
a6042f38b4 Merge pull request #472 from RichardHitt/master
Delete two banlist_info members, unused
2013-03-24 21:09:33 -07:00
0e63ca830d Fix advanced pane 2013-03-25 03:50:31 +01:00
15396fc2cd Cosmetics 2013-03-25 03:14:23 +01:00
9c8b717901 Delete banlist_info members radio[], checkbox[], unused 2013-03-24 17:44:24 -07:00
2bd12b2e25 Typo 2013-03-24 18:49:45 -03:00
39cfcc7468 Update missing perl note. 2013-03-24 17:23:16 -03:00
e0bb6ff0cc Merge pull request #469 from RichardHitt/banlist-datesort
Fix datesort problem after new column in banlist
2013-03-24 12:21:02 -07:00
835f662349 Fix datesort problem after new column in banlist 2013-03-24 12:07:42 -07:00
a5994cf647 Merge pull request #445 from TingPing/ulistcolors
Add option to color nicknames in the userlist to match the chat
2013-03-24 01:53:37 -07:00
b693c58e9f Merge pull request #467 from TingPing/bancol
Add type column to banlist
2013-03-24 01:31:04 -07:00
3dacb89ea1 Whitespace 2013-03-24 04:23:17 -04:00
ba55e90465 Translate type column entries too 2013-03-24 05:14:15 -03:00
8b7ddbee59 Add type column to banlist 2013-03-24 03:39:04 -04:00
7863bc71f8 Translate banlist checkboxes
Closes #465
2013-03-24 04:20:39 -03:00
7a38aca803 Convert back to unix endings 2013-03-24 03:03:26 -04:00
84ffde7152 Be compatable with TLS
closes #461
2013-03-23 22:24:19 -03:00
2c029f763c It's just HexChat 2013-03-23 20:33:06 -03:00
ed8e768c7e Make everyone happy 2013-03-23 22:14:28 +01:00
5144fe509f Revert "Migrator for servlist_ in the installers"
This reverts commit c6ead740c8.
2013-03-23 22:11:39 +01:00
8996baa35e Merge pull request #464 from RichardHitt/bufoflo
Truncate text if too long.  Closes Issue #463
2013-03-23 13:21:45 -07:00
c99e7f8154 Add migration code for servlist 2013-03-23 17:15:27 -03:00
f7923f2a02 Truncate text if too long. Closes Issue #463 2013-03-23 13:08:49 -07:00
c38e8fdd14 Remove spec file 2013-03-23 15:37:49 -04:00
c6ead740c8 Migrator for servlist_ in the installers 2013-03-23 17:06:19 +01:00
96fe6bf2ca Cleanup, docs are online now, these are either irrelevant or outdated 2013-03-23 16:28:13 +01:00
a6d7cfab78 Get rid of the servlist_ rubbish 2013-03-23 16:25:38 +01:00
93c79d4463 fix tree indentation with icons 2013-03-23 04:28:22 -03:00
cd1155b83c ensure lasttalk gets updated
closes #247
2013-03-22 23:41:56 -03:00
aff9fb7945 Update textevents.in 2013-03-22 19:10:31 -03:00
b282c6f2f3 add confirm dialog to clearing ignores 2013-03-22 18:22:56 -03:00
d37ef26104 Merge pull request #459 from RichardHitt/banlist1
Redesign the Ban List window.  Closes #303, closes #342, closes #427
2013-03-21 15:02:32 -07:00
ec576f315a Do an XP_TE_BANLIST only for ban, not exempt/invite/quiet 2013-03-21 12:05:42 -07:00
f5631b2e22 Redesign the Ban List window. Closes Issues #303, #342, #427
This is a combination of 18 commits.
 The first commit's message is:
Here is the initial banlist branch of RichardHitt/hexchat.
Changed files are only src/fe-gtk/{banlist.c,fe-gtk.h}.
This version works and contains my first efforts at selective
sensitization of radio buttons and control buttons.

From this point I intend to undertake a stepwise redesign.

Step 1 will be to make the existing banlist code work for
multiple simultaneous banlist windows (for different channels,
obviously).  It will be a hackathon with the only goal of getting
it working.

Step 2 will be the objectization and alpha-stage tidying-up of
all the terrible looking stuff I will have done in Step 1.

 This is the 2nd commit message:

Here's the post-Step-1 commit.  It works for multiple banlist windows.

Note particularly what I've done to banlist.h.
Note that for many functions in banlist.c the argument is now
a banlist_info *, rather than a session *.
Note in banlist.c the initialization of array modes[] which
contains driving information for the checkboxes.

Of course those checkboxes aren't yet implemented.  Maybe in Step 2
I will change to checkboxes from radio buttons; but definitely I will
change to letting modes[] drive processing.

 This is the 3rd commit message:

Converted to checkboxes.  Much additional work.
Note that the infrastructure for Auto-invite is not yet
present in the hexchat tree.  I'm nearly done with banlist,
I think!

 This is the 4th commit message:

Fleshed out 'invite'.  Tagged masks uniformly, e.g. (b) (e) (I).
General cleanup, nearly at the point of beta quality.

 This is the 5th commit message:

Added fourth mode type: quiet.  Did lots and lots of cleanup.  Beta-ready?

 This is the 6th commit message:

Get the banlist timestamps properly sortable.

 This is the 7th commit message:

Redesign the supports_foo() routines.  Now they're responsible for setting
the flags in ->capable, ->readable, ->writeable.

 This is the 8th commit message:

Deleted a couple of RBH comments.

 This is the 9th commit message:

Now the ESC key will close the banlist window.

 This is the 10th commit message:

Fix the fe-text occurrence of fe_add_ban_list().

 This is the 11th commit message:

Fixed also fe_ban_list_end() and removed fe_is_banwindow().

 This is the 12th commit message:

Use old-style initialization for array of structures modes[]

 This is the 13th commit message:

Oops, incomplete regression of modes[] initialization.  This fixes.

 This is the 14th commit message:

Fixed strptime buy implementing a special version here.
Fixed column width concerns by setting resizable and autosize.

 This is the 15th commit message:

Get rid of testing line.

 This is the 16th commit message:

Changed to gtkutil_destroy_on_esc ()

 This is the 17th commit message:

Remove no-longer-used functnion

 This is the 18th commit message:

Minor cleanups to banlist.c, banlist.h

 Please enter the commit message for your changes. Lines starting
 with '#' will be ignored, and an empty message aborts the commit.

 Author:    RichardHitt <rbh00@netcom.com>
 Committer: Richard Hitt <rbh00@f17.rbh00.pacbell.net>

 Not currently on any branch.
 Changes to be committed:
   (use "git reset HEAD <file>..." to unstage)

	modified:   src/common/fe.h
	modified:   src/common/hexchat.h
	modified:   src/common/inbound.c
	modified:   src/common/modes.c
	modified:   src/common/proto-irc.c
	modified:   src/common/server.c
	modified:   src/fe-gtk/banlist.c
	modified:   src/fe-gtk/banlist.h
	modified:   src/fe-gtk/fe-gtk.c
	modified:   src/fe-gtk/fe-gtk.h
	modified:   src/fe-gtk/maingui.c
	modified:   src/fe-text/fe-text.c
2013-03-20 15:10:30 -07:00
c5404b8e25 Update Perl download links 2013-03-19 01:29:37 +01:00
265207a97a Don't indent channels with server tabs disabled. 2013-03-18 16:08:53 -03:00
20e3522177 Merge pull request #455 from RichardHitt/escape
Let the ESC key close certain windows.  Closes #211
2013-03-17 16:16:46 -07:00
c9540df92d Get rid of testing line. 2013-03-17 15:33:50 -07:00
ecdcc99280 ESC key will destroy the windows mentioned at issue 211.
This change implements generic routine gtkutil_destroy_on_esc ()
and adds invocations of it in the requisite window-handling places.
2013-03-17 15:11:23 -07:00
89d62ee4f8 Default ignore type to ALL 2013-03-17 16:27:26 -03:00
c58a741abb All unignoring nicks just like ignore 2013-03-17 16:20:38 -03:00
e8a78b9aa1 Handle EOF in text-fe 2013-03-16 22:57:34 -03:00
69e1ed4278 fix fe-text on win32
It still throws out some errors
2013-03-16 22:33:36 -03:00
12f0d0b304 fix fe-text 2013-03-16 20:17:21 -03:00
60d7e8e320 Backport XChat r1523 2013-03-16 22:41:40 +01:00
7cf4778aaa Update changelog links 2013-03-15 22:29:55 +01:00
57368e9806 Add safe mode shortcuts 2013-03-15 22:21:59 +01:00
e03d51cdcb Add real name field to advanced pane 2013-03-15 22:10:06 +01:00
68ff3776ee Remove double UTF-8, it's already default charset 2013-03-15 22:02:33 +01:00
25f8e45b73 Get rid of Non-BMP filtering, Pango handles this now 2013-03-15 22:00:55 +01:00
16cc178ba0 update dbus example.py for python3 2013-03-15 08:55:15 -03:00
ec354038db Add python gdbus example 2013-03-15 07:29:39 -03:00
8cd2921387 Merge pull request #444 from TingPing/noticepos2
Add irc_notice_pos setting
2013-03-14 13:29:53 -07:00
1d41eda101 Change notice option wording 2013-03-14 17:28:25 -03:00
cd2f775fe4 Separate version check for XP, we might need it during the transition to VS2012 2013-03-13 23:11:33 +01:00
eb5313f850 Clean up away-notify patch 2013-03-12 23:54:55 -04:00
44b381680f fix typo 2013-03-13 00:36:07 -03:00
6bdbbbea83 Update Perl to 5.16.3 2013-03-12 20:09:30 +01:00
d1e2048239 fix python's get_pluginpref crashing on long strings 2013-03-12 07:37:40 -03:00
bf0fb9f327 Add away-notify support 2013-03-12 02:21:18 -04:00
b5f78f484d Fix relative paths on windows 2013-03-11 13:55:29 -03:00
1ddb76465a Don't show join dialog when you autojoin.
closes #305
2013-03-11 11:22:50 -03:00
8f82d31db1 Fix reconnecting to keyed channels
closes #16
2013-03-11 10:22:37 -03:00
9f7af7c4e4 Merge pull request #439 from TingPing/urlkey
Add channel key support to urls
2013-03-11 01:13:22 -07:00
6bd9656416 Add option to color nicknames in the userlist to match the chat 2013-03-09 17:57:06 -05:00
9924300c05 Add irc_notice_pos setting 2013-03-09 17:09:38 -05:00
ab99bf7517 Use key on new servers 2013-03-04 16:30:36 -05:00
d1c36f170b Add key support to urls like mirc 2013-03-04 15:46:04 -05:00
84f19881a3 fix query -nofocus 2013-03-04 12:02:55 -05:00
6ff9fb596e Merge pull request #437 from museun/master
closes #294
2013-03-03 16:11:49 -08:00
b7d78f27be HTM was throwing an exception for ReadOnly files.
So, to fix this an explicit FileAccess had to be set. Package.Open uses
the default FileShare.None option. This causes a conflict and throws the
'UnauthorizedAccessException' exception. So, we just tell it that we are
there to read it and everything is fine.
2013-03-03 18:52:23 -05:00
8faa0e6518 Use AC_CONFIG_FILES 2013-03-03 15:28:26 -05:00
8ed07b83eb Fix macro searching 2013-03-03 15:19:33 -05:00
1369a20aba Merge pull request #436 from RichardHitt/issue435
Change is_del to remove ATTR_BOLD, ATTR_RESET -- closes issue 435
2013-03-03 11:57:32 -08:00
6dc437c364 Change the is_del() macro to not regard ATTR_BOLD nor ATTR_RESET as delimiters.
Remove old iffed-out version of is_del() as well, as a cleanup step; that change
was for not regarding left and right parens as delimiters.  With this change,
mousing over a nickname will underline it even if it contains embedded formatting
data; it used to work with all formatting data but bold and reset; now it
works for all.
2013-03-03 11:43:24 -08:00
c76dedd9b9 update readme link to building docs
closes #424
2013-02-25 01:42:02 -05:00
3b7f86aef8 Merge pull request #426 from Misdre/master
Typing /join #channel → focus the channel if it's already open. closes #406
2013-02-24 22:27:55 -08:00
6db9a86366 focus the channel if it's already open (issue #406) 2013-02-24 23:04:48 +01:00
f16646f446 set input's vertical scrollbar to auto with gtkspell 2013-02-21 20:15:08 -05:00
4f9bebc3fa Only show spelling preferences when supported 2013-02-21 19:55:54 -05:00
aaf4de7024 add gnome's UsesNotifications to the desktop file 2013-02-18 02:11:53 -05:00
e5a6913f83 add notification hints for gnome 2013-02-18 00:32:59 -05:00
bcb2107bb1 Fallback to $HOME/Downloads for dcc_dir 2013-02-18 00:30:57 -05:00
3915abc91e fix path to icon for notifications 2013-02-18 00:15:47 -05:00
a1eb937d09 Add HarfBuzz DLL to dist 2013-02-18 05:15:36 +01:00
936785d24e follow XDG for default download directory
closes #413
2013-02-16 23:07:18 -05:00
e6d65e4004 Move dependency graph to other repo 2013-02-16 20:32:16 +01:00
620299de71 Bump copyright year 2013-02-16 18:04:04 +01:00
5e56552998 Add vc redist to links, don't open links by default and cosmetics 2013-02-16 18:02:16 +01:00
7f9ff189b5 Fix libwimp path in the installers 2013-02-16 17:52:48 +01:00
852ae3f7c2 Make copy not depend on perl-5.12 and perl-5.15 2013-02-16 17:52:39 +01:00
26975f6231 Fix stupid GitHub autocrlf mess 2013-02-16 16:00:20 +01:00
c409f56e23 Fix libwimp path 2013-02-16 15:55:47 +01:00
f43dfc1099 Merge branch 'master' of https://github.com/hexchat/hexchat 2013-02-16 15:30:13 +01:00
e41a84b094 Try to create the addons folder initially 2013-02-16 15:28:44 +01:00
3b23642e2c Merge pull request #407 from RichardHitt/master
Fix bug in url.c at re_host().
2013-02-13 15:05:11 -08:00
8e3d039199 Fix bug in url.c at re_host().
Unlike the other re_foo() functions it was not checking immediately
and returning if host_ret had already been filled in.  This would
causes a memory leak since the previous GRegex would be lost.
2013-02-13 12:52:49 -08:00
ef18734f20 Make sure we don't auto-load HexTray 2013-02-13 21:05:16 +01:00
5297209ed2 Add autojoin back 2013-02-07 21:56:48 +01:00
3f60c59908 fix tray menu placement issues
notably top taskbar issues on windows
2013-02-06 12:58:14 -05:00
1d563b2e14 Merge pull request #398 from thor/patch-1
change URL for "Contents" option in "Help" menu
2013-02-05 16:25:02 -08:00
862a02ce63 change URL for "Contents" option in "Help" menu
I propose that the address for the help contents is changed to docs.hexchat.org over simply being hexchat.org.
2013-02-05 22:47:12 +01:00
85534f123b Update installer to point to news 2013-02-04 15:43:31 -05:00
b83f797493 Point to new download url 2013-02-04 15:31:24 -05:00
98d56c2b7f Don't require scollback to edit scrollback lines
text_max_lines also affects how many lines you can view not just scrollback
2013-02-04 09:31:38 -05:00
e832f761bb Update translation template 2013-02-02 06:06:53 -05:00
ce31c6dce6 only detect full paths on windows.
closes #302
2013-01-31 23:58:18 -05:00
edc04743bf fix variable name in flood msg. 2013-01-31 06:23:44 -05:00
2bb4da5f0b add station51 to servlist 2013-01-23 17:05:43 -05:00
8b49f5f787 Merge pull request #383 from RichardHitt/warnings
Correct almost all compiler warning issues
2013-01-19 13:10:54 -08:00
4e0daf047e Correct almost all compiler warning issues 2013-01-19 12:33:16 -08:00
a46f89998c actually fix updchk 2013-01-17 18:57:02 -05:00
606cb09fa5 fix fe-beep issue in fe-text 2013-01-17 18:52:06 -05:00
de4b4afe9d Merge pull request #380 from RichardHitt/pull350
Closes issue 350.  Fix stat64 and malloc.h problems
2013-01-17 15:50:26 -08:00
e43bc2ccc2 Remove #include <malloc.h>, causes a #error in freebsd build 2013-01-16 15:42:28 -08:00
82026be00a Merge branch 'master' into pull350 2013-01-16 15:39:55 -08:00
8b451edf9c Merge pull request #377 from RichardHitt/issue376
Parse url according to rfc 1738: add separate define for TLD.  Closes 376.
2013-01-16 14:06:50 -08:00
7bc0e017f6 Oops. didn't get the DOMAIN slight change last time. Here it is now. 2013-01-15 13:26:11 -08:00
bb617ccacd Prev called anything a URL! Reverted but slight DOMAIN change. 2013-01-15 13:19:29 -08:00
d5fbea3411 Fix DOMAIN and TLD per rfc 1738, thanks Arnavion 2013-01-15 01:23:37 -08:00
ea92a70e64 Merge pull request #378 from aperson/patch-1
Snoonet is now snoonet.org, not .com
2013-01-14 21:49:27 -08:00
019a6f0c54 Snoonet is now snoonet.org, not .com
http://www.reddit.com/r/irc/comments/13xpok/announcement_snoonet_operational_status/
2013-01-14 23:47:12 -06:00
be2d100d2d Parse url according to rfc 1738: add separate define for TLD. 2013-01-14 12:33:08 -08:00
bba00f2b66 Merge pull request #373 from RichardHitt/issue372
closes Issue372 -- Fix nickname-mouseover recognition
2013-01-11 16:16:39 -08:00
07b69fd2f8 Oops, Windows doesn't offer strndup(). Use g_strndup(). 2013-01-11 16:12:52 -08:00
6c7346cdbe Correct nick recognition in mainurl.c as well. Closes #372. 2013-01-11 02:38:11 -08:00
487ac0a011 Correct nick recognition. Closes 372. 2013-01-11 01:39:21 -08:00
bf673072e8 Merge branch 'master' into pull350 2013-01-10 02:14:02 -08:00
4a2ecc5d6c Merge pull request #370 from RichardHitt/pull369
Fix crash by detecting NULL channel in url_join_only() and just returnin...
2013-01-10 01:59:08 -08:00
475eb9fcaa Fix crash by detecting NULL channel in url_join_only() and just returning. 2013-01-10 00:13:25 -08:00
ba2927e3c5 Merge pull request #368 from RichardHitt/pull360
Make source clean with cppcheck, except for mpc and sasl, closes #360
2013-01-09 19:53:26 -08:00
ed786843de remove old sasl plugin 2013-01-09 21:01:13 -05:00
672dbf75d6 Oops, fixed error in util.c 2013-01-09 14:53:19 -08:00
6beef589e3 Make source cleah with cppcheck, except for mpc and sasl 2013-01-09 14:37:57 -08:00
efdfa50f1e Fix Issue 350 in checksum.c by changing struct stat64 to struct stat 2013-01-09 00:15:08 -08:00
285ddd0b60 add join_delay to preferences 2013-01-08 20:44:05 -05:00
c8419ae43a Merge pull request #359 from RichardHitt/master
Overhaul of URL detection, includes nick, channel, etc
2013-01-08 13:09:33 -08:00
ccc82895ed Merge branch 'master' of http://github.com/RichardHitt/hexchat 2013-01-08 12:58:05 -08:00
5ec9d8534e Add "ircs://" to the list of URL schemes 2013-01-08 12:55:20 -08:00
0213f21a46 Merge pull request #341 from TingPing/lastact
Add last activity keybinding from fedora
2013-01-07 14:20:26 -08:00
2af44e02bf Simplification of new code -- eliminate member lastact_elem 2013-01-07 11:50:54 -08:00
ae83679e93 update keybinding description 2013-01-05 16:44:58 -05:00
24ce347472 fix if statement 2013-01-05 16:23:34 -05:00
0ecbeb7152 Merge pull request #337 from TingPing/tray
add even more tray icon changes
2013-01-04 17:43:35 -08:00
af92429ea0 use notify::embedded 2013-01-04 20:30:30 -05:00
00bd8d42c3 use tabs 2013-01-03 18:18:04 -05:00
4bf2fbe092 Ywes, nicks can be as short as one character long! 2013-01-03 14:24:04 -08:00
44d920592d For NICK0 use NICKSPE, not NICKDIG 2013-01-03 14:13:20 -08:00
7099f43a12 Don't strip # from a WORD_CHANNEL 2013-01-03 11:32:45 -08:00
fa97379f78 update text events 2013-01-03 13:47:53 -05:00
f4c2c08ccb Also allow URLs of of the form \.[a-z]+\/ 2013-01-02 23:47:58 -08:00
599b07497b use g_get_user_config_dir 2013-01-02 23:14:13 -05:00
270a31535c I forgot to add case WORD_PATH to do_an_url()'s switch statement 2013-01-02 15:03:16 -08:00
0e6add7dd6 Fix FSF address to be Franklin Street 2013-01-02 14:58:26 -08:00
4af624627e overhauling of URL detection, including channel, nick, etc 'words' 2013-01-02 14:50:26 -08:00
7f2846a5bd Don't error on icon cache update failure 2013-01-01 18:58:19 -05:00
809cfef957 add missing include 2012-12-30 14:54:07 -05:00
4adb0b386b Merge pull request #343 from bui/master
fix configure error related to Python headers on Ubuntu 13.04
2012-12-29 05:33:59 -08:00
1a0396dcae default irc_whois_front on 2012-12-29 01:23:00 -05:00
d07ee22f58 Merge pull request #347 from dmashal/master
Add /wi shortcut
2012-12-28 22:19:20 -08:00
4905c95167 Add wi shortcut for whois 2012-12-28 22:06:05 -08:00
Bui
2406c45077 fix configure error related to Python headers on Ubuntu 13.04 2012-12-26 09:52:55 +00:00
8fe3c40278 add changelog to installer
closes #255
2012-12-25 21:49:21 -05:00
2e9bf00e0a Merge pull request #336 from TingPing/beep
Don't beep when window is active.
2012-12-25 18:28:07 -08:00
446d90d835 update url opening on linux 2012-12-25 04:46:54 -05:00
b37fe23b99 Add last activity keybinding from fedora 2012-12-25 00:33:57 -05:00
6354721391 Merge pull request #339 from dmashal/master
fix incorrect fsf address for all files
2012-12-23 13:59:45 -08:00
b04377825f fix incorrect FSF address 2012-12-23 11:36:54 -08:00
32eac07424 fix updchk again 2012-12-22 23:42:49 -05:00
9aa33ad1d3 add glebihans disappearing tray patch 2012-12-21 15:09:00 -05:00
fa0705f059 remove #hexchat autojoin 2012-12-21 02:25:19 -05:00
b259595c9d allow tray blinks to be static icons 2012-12-20 19:53:58 -05:00
4524367cc0 Add auto-away to plugin-tray 2012-12-20 19:39:52 -05:00
06188dcac3 Merge pull request #335 from satdav/patch-2
remove ircnet.com from network list
2012-12-20 14:00:52 -08:00
74ea6bd08b Update src/common/servlist.c
removed the ircnet.com server as no more been conformed by TingPing
2012-12-20 21:43:39 +00:00
3e85c2e820 Merge pull request #326 from TingPing/minimize
fix restoring previously maximized window from tray
2012-12-20 12:16:48 -08:00
52ffb02685 Update src/fe-gtk/plugin-tray.c 2012-12-20 13:30:48 -05:00
a321793e93 Merge pull request #334 from satdav/patch-1
Added Moznet network to the IRC List
2012-12-20 10:28:23 -08:00
2478d51246 Added Moznet network to the IRC List
Added the moznet IRC network to the network list what is the Mozilla network for firefox and other networks
2012-12-20 13:49:39 +00:00
82d6313887 add GameSurge to network list
closes #332
2012-12-19 22:38:34 -05:00
76680ae41b Update Checker: Ignore invalid length version nums 2012-12-17 20:48:02 -05:00
b274ecca4f fix update checkers help message 2012-12-17 20:24:09 -05:00
616b88eea1 Merge branch 'master' of github.com:hexchat/hexchat 2012-12-17 16:48:52 -05:00
af9b65ee78 MPC: don't spam no player running to chat 2012-12-17 16:48:18 -05:00
c14f37b933 remove hextray from installer 2012-12-17 16:45:10 -05:00
49f268d71e Merge pull request #328 from RichardHitt/master
install hicolor svg; reorganize some Makefile.am files
2012-12-16 18:11:10 -08:00
df9a05cba5 Put hexchat png in icons/hicolor/48x48/apps 2012-12-16 18:05:37 -08:00
925b45e8f0 Install hicolor svg; move the files Makefile.am to their subdirectories 2012-12-16 17:29:08 -08:00
59d3fa47a5 fix restoring previously maximized window from tray 2012-12-16 12:54:15 -05:00
c1ccb244db Don't beep when window is active. 2012-12-12 10:45:14 -05:00
c6d955ade7 fix playing sounds with sound_dir 2012-12-08 05:18:16 -05:00
8e4d9c1f61 fix loading custom tray icons 2012-12-06 00:11:50 -05:00
ffa299f99e fix typo 2012-12-05 01:06:05 -05:00
a869f5b391 enable ipv6 by default
closes #245
2012-12-05 01:04:57 -05:00
c956b913b3 Merge pull request #296 from TingPing/tray
Tray improvements
2012-12-03 15:54:51 -08:00
ed54ea08b2 make preferences in tray win only
to make up for lack of 'blink on' and for ex-hextray users
2012-12-03 17:23:38 -05:00
6e5a48daed Merge pull request #297 from TingPing/util
allow plugingui to open as tab
2012-12-03 13:29:35 -08:00
18f248cdbe remove unneeded gtk_widget_show 2012-12-03 16:13:53 -05:00
813691f1ec Fix warning 2012-12-03 13:00:11 -08:00
3d43f755fc Update share/doc/faq.md 2012-12-03 01:11:38 -05:00
f06fd74d25 remove close button for consistancy 2012-12-02 23:16:07 -05:00
5fdcdedd9e Merge pull request #298 from TingPing/vertical
Save pane height and restore on start
2012-12-02 20:08:40 -08:00
abaf4425d9 rename pane height variable 2012-12-01 19:43:20 -05:00
5f88e6ccf0 fix language typo
closes #301
2012-12-01 17:42:53 -05:00
cbb8c88a0e on exit try hiding last
this fixes the window hiding when the quit dialog pops up
2012-12-01 14:36:24 -05:00
1c224894a2 Save pane height and restore on start
closes #154
2012-11-30 17:22:12 -05:00
e3bdd00ff3 handle plugingui window like other utils 2012-11-30 11:59:42 -05:00
45607703c2 update checksum help info 2012-11-26 06:49:28 -05:00
7424c0c68b Merge pull request #292 from RichardHitt/master
Fix for issue #289, autocopy though no text selected
2012-11-26 03:11:02 -08:00
1bb0f34084 Fix for issue #289, autocopy though no text selected 2012-11-25 21:26:15 -08:00
acc90d4e77 default to utf-8 encoding
closes #282
2012-11-25 12:39:18 -05:00
7e3c8eb542 Update share/doc/faq.md 2012-11-24 04:06:35 -05:00
10b195a59f relocate custom tray menu items 2012-11-23 04:58:56 -05:00
2cafe9ff9b show away/back in windows tray menu 2012-11-23 04:40:35 -05:00
0a5c8356eb add preferences to tray menu 2012-11-22 02:49:41 -05:00
31fc9c7f31 Update faq 2012-11-20 22:28:40 -05:00
2eba723ee7 Merge pull request #286 from TingPing/tray2
Workarounds for plugin-tray menu on Windows
2012-11-20 18:29:10 -08:00
6437df7576 Update spelling dicts to extract to localappdata
closes #241
2012-11-20 20:25:05 -05:00
a1c8fd998c ensure menu exists 2012-11-20 15:25:38 -05:00
9ada5c7974 Merge pull request #285 from TingPing/checksum
Fix checksum plugin when completed dir is set
2012-11-20 11:53:18 -08:00
7ac36d4d8d Use g_strdup 2012-11-20 05:00:39 -05:00
ecde599fd4 add missing ifdef 2012-11-19 23:02:53 -05:00
991d3d5401 Fix checksum plugin when completed dir is set 2012-11-19 20:03:59 -05:00
a7631810bd auto close menu on windows 2012-11-18 16:35:18 -05:00
d67dc36bbe allow only one menu 2012-11-18 15:45:31 -05:00
53c6fe622f Merge pull request #259 from TingPing/icons
removed extra wasted space around icons
2012-11-16 13:00:34 -08:00
8dc1203c7b Merge pull request #265 from jtmohr/textevents
Fix Text Events spacing issues
2012-11-16 12:54:11 -08:00
096e49ddc8 Merge pull request #260 from RichardHitt/master
Minimize url grabbing
2012-11-16 12:37:20 -08:00
74145666f5 Fix Text Events spacing issues
This commit fixes issue #262
2012-11-14 11:39:04 -06:00
b59f9abd1a Limit url-grabbing to NOTICE, PRIVMSG, TOPIC, 332 (RPL_TOPIC), 372 (RPL_MOTD) 2012-11-13 12:06:35 -08:00
b095bad0d2 removed extra wasted space around icons 2012-11-13 14:52:06 -05:00
c896176925 Fix rendering on GitHub 2012-11-12 21:05:56 +01:00
edece1fa14 Convert Transifex howto to Markdown 2012-11-12 21:02:40 +01:00
2ccc0dcfca Update translations 2012-11-12 20:57:30 +01:00
1e708a8d42 Update Transifex howto 2012-11-12 20:57:21 +01:00
677c0e3b70 Disable auto-loading of deprecated plugins 2012-11-12 20:46:26 +01:00
08e2dd848a Remove Lua from deps 2012-11-12 19:33:06 +01:00
1b5075d946 Get rid of the buggy, unmaintained and unused Lua and Tcl interfaces 2012-11-12 19:03:19 +01:00
b5f58a4be2 Make sure g_strconcat() result is NULL terminated 2012-11-12 18:04:47 +01:00
268115239c Merge pull request #253 from Arnavion/utf8-everywhere
utf8-everywhere: Forgot the g_free's and the g_unlink / g_rename.
2012-11-12 09:03:22 -08:00
6ec040f5c9 utf8-everywhere: Forgot the g_free's and the g_unlink / g_rename. 2012-11-12 00:06:05 -08:00
0f26470169 Re-enable plugin-tray context menu, submenus don't work yet 2012-11-12 08:40:21 +01:00
4e488d04c8 Add Perl build notes and installers 2012-11-12 08:12:38 +01:00
fdc316a1ce Fix g_strdup_printf() call causing removal of hexchat.conf 2012-11-12 07:47:58 +01:00
1e35c196e8 Merge pull request #249 from Arnavion/utf8-everywhere
utf8-everywhere: Derp.
2012-11-11 19:57:03 -08:00
aab041da91 utf8-everywhere: Derp. 2012-11-11 19:54:47 -08:00
aaa863535d Merge pull request #248 from Arnavion/utf8-everywhere
Fixed some remaining C file I/O API calls to use the glib API
2012-11-11 19:40:33 -08:00
ed26917691 utf8-everywhere: Fixed some remaining C file I/O API calls to use the glib API. 2012-11-11 19:34:09 -08:00
49d5234b39 Load own certs from <config>\certs 2012-11-12 04:06:03 +01:00
40d4c592b3 Update Perl error message according to recent changes 2012-11-12 02:24:19 +01:00
c0dca425a5 Prepare solution for Perl 5.16 VC build 2012-11-12 02:04:58 +01:00
cc0051cb40 Move HexChat L10n to share\locale where it should've been in the first place 2012-11-12 00:17:24 +01:00
b217c88b37 These shouldn't be needed anymore 2012-11-11 19:33:01 +01:00
b2cd9157d7 Enable updates 2012-11-11 19:08:31 +01:00
07ddde4108 Fix GTK-VS installers 2012-11-11 19:06:22 +01:00
428f479aed Fix 4996 warnings 2012-11-11 18:36:00 +01:00
39b797b7bb Fix WMPA compilation without the WDK 2012-11-11 18:26:31 +01:00
82694d2d29 Hide 4996 warnings in all projects and fix license copy 2012-11-11 18:23:27 +01:00
18c0d7c52b Update translations 2012-11-11 17:38:27 +01:00
bb6a6b7f17 Update translation template 2012-11-11 17:24:46 +01:00
89bbe07080 Disable updates for now 2012-11-11 17:10:16 +01:00
2cc6d05af6 Fix wording for banlist 2012-11-11 17:09:29 +01:00
1784d2b331 Fix date 2012-11-11 16:43:11 +01:00
681ca5e390 Update changelog 2012-11-11 16:30:41 +01:00
b564da6284 Update translations 2012-11-11 16:27:57 +01:00
7911aeb51e Disable one instance code coz it's really buggy 2012-11-11 15:50:31 +01:00
a04fdc50b6 More rebranding 2012-11-11 15:23:48 +01:00
1c0548c4ca Copy-paste fix 2012-11-11 14:39:35 +01:00
348c6ba919 Rebranding 2012-11-11 13:51:50 +01:00
4c1f2b93d0 Update comment 2012-11-10 20:59:51 +01:00
e154ce310d Update translations 2012-11-10 20:38:37 +01:00
1468d35db3 Don't minimize/close to tray via plugin-tray when HexTray is available 2012-11-10 20:28:16 +01:00
488883266c Update changelog 2012-11-10 20:06:15 +01:00
50fabee1ad Exclude SASL plugin from build 2012-11-10 20:04:31 +01:00
ebb157616f Version bump 2012-11-10 19:46:36 +01:00
ec62dc0626 Update translations 2012-11-10 19:36:08 +01:00
05b1b9e43e Update translation template 2012-11-10 19:31:36 +01:00
4756078263 Explode gui_tray_flags 2012-11-10 19:29:12 +01:00
5781cd0c44 Update translations 2012-11-10 18:35:43 +01:00
ed970381fb Eliminate some more warnings and hide less warnings in VS 2012-11-10 18:26:45 +01:00
584b89bb02 Another unused thing 2012-11-10 17:32:18 +01:00
b3f225a70d Comment out one more unused thing 2012-11-10 17:26:50 +01:00
9c70eee4ca Eliminate some unused stuff 2012-11-10 17:20:05 +01:00
f53eadbcab Update translation template 2012-11-10 17:03:30 +01:00
2024b39bac Merge pull request #237 from mikelolasagasti/configure-changes2
Silent build
2012-11-09 13:00:34 -08:00
3fe4bf8392 Use AS_HELP_STRING to format text 2012-11-09 22:00:08 +01:00
1b03947ce5 Silent build 2012-11-09 21:56:37 +01:00
09ccc1fd9d Arg 3 should be email but we don't use that; arg 4 defaults to lowercase arg 1, so it's unnecessary 2012-11-09 21:36:46 +01:00
00604eb722 Rename deps files 2012-11-09 20:39:23 +01:00
cbfdf1df47 Fix project dependencies 2012-11-09 19:33:22 +01:00
cd820abcc1 Update translations 2012-11-09 16:14:55 +01:00
c9cd6fbd1b Add notes about testing translations 2012-11-09 16:12:33 +01:00
e6c64dae1d Update translations 2012-11-07 00:33:13 +01:00
912ea8a534 Disable some stupid warnings without the WDK 2012-11-06 23:47:12 +01:00
cc8a86abb4 Fix spacing once more 2012-11-06 18:13:21 +01:00
ca9661779a Move GTK+ to a separate repo 2012-11-06 18:03:08 +01:00
2c0f050df0 Remove spacing, it wouldn't work anyway 2012-11-05 15:42:48 +01:00
cd92b0e72b Add build notes to 1st level deps 2012-11-05 14:28:21 +01:00
857f436671 win-iconv version bump 2012-11-05 14:27:50 +01:00
d142c74c15 Fix erroneous DCC file names and crash upon aborting 2012-11-05 03:04:08 +01:00
4724443124 Update translations 2012-11-05 01:01:50 +01:00
72c8b7a1fe Get rid of XChat revision 2012-11-05 00:49:46 +01:00
db218817fd Use configdir instead of *xchatdir* 2012-11-04 23:55:36 +01:00
ad16ed3933 Update translations 2012-11-04 23:27:15 +01:00
79fa1a0521 Move build files out of the source tree, make grep usage much easier 2012-11-04 23:26:43 +01:00
83189aadfe Add icon to message boxes 2012-11-04 22:30:26 +01:00
d9bc58cb4c Update translations 2012-11-04 22:07:11 +01:00
aed112150a Update translation template 2012-11-04 21:56:27 +01:00
e3dae6dbd0 Cosmetics 2012-11-04 21:52:17 +01:00
9193754095 Fix missing function 2012-11-04 21:51:43 +01:00
d706c5ccdc Fix another missing var 2012-11-04 21:50:16 +01:00
abbb4897ea Fix missing variable 2012-11-04 21:45:46 +01:00
d0b5d53f92 Some more platform unification 2012-11-04 21:40:59 +01:00
5c9283fc68 Fix for using -d with non-english locale 2012-11-04 21:40:39 +01:00
7873bfe211 Merge pull request #227 from Arnavion/utf8-everywhere
utf8-everywhere part 3
2012-11-04 09:31:46 -08:00
b969665e47 utf8-everywhere: Fixed log_write to use access instead of g_access. 2012-11-04 09:27:15 -08:00
6560e6365a utf8-everywhere: Scrollback-loading code thought the first word of every message was part of the timestamp because of a missing space. 2012-11-04 09:11:41 -08:00
04892cbbef Case tabulation 2012-11-04 17:52:59 +01:00
d7daa8bc3c Case simplification 2012-11-04 17:52:58 +01:00
9a643bfaaa Merge pull request #226 from TingPing/master
Update Python docs
2012-11-04 07:55:33 -08:00
71251252ae Updated get_list docs 2012-11-04 01:53:31 -05:00
594cca99c0 Updated python get_info docs 2012-11-04 01:02:27 -05:00
753a773bba Merge pull request #225 from Arnavion/utf8-everywhere
utf8-everywhere: Fixed crash when passing in a config directory using -d
2012-11-03 22:35:50 -07:00
6602e6a7c5 utf8-everywhere: Fixed crash when passing in a config directory using -d 2012-11-03 22:32:33 -07:00
82031ed6d4 Indentation cosmetics 2012-11-04 06:10:59 +01:00
3c5284f19d Merge pull request #224 from Arnavion/utf8-everywhere
UTF-8 everywhere
2012-11-03 21:48:56 -07:00
c2c23894fc utf8-everywhere: Fixed crash on loading scrollback. 2012-11-03 21:32:52 -07:00
4ec499c241 Eliminate warnings due to missing includes 2012-11-04 04:22:22 +01:00
0e9658f2ab Ignore specific warnings for common and fe-gtk, all should be eliminated at some point 2012-11-04 04:06:44 +01:00
87a8c13e5e Fix tabulation 2012-11-04 04:04:41 +01:00
a978e7b55b utf8-everywhere: Removed unreferenced local variables. 2012-11-03 19:11:09 -07:00
5d9264aff6 Initial commit for utf8 everywhere. 2012-11-03 19:04:02 -07:00
e0b1724158 ReadMe cosmetics 2012-11-04 01:21:23 +01:00
3d0eba7e02 Update translations 2012-11-04 00:53:15 +01:00
28b2d331f3 Update translation template 2012-11-04 00:50:11 +01:00
cef390e47d By default, open dialog window for doubleclick on a nick in the user list 2012-11-04 00:41:25 +01:00
a0e14dfc5f Workaround for marker line option being untickable 2012-11-04 00:31:09 +01:00
c0e65ff0fe Fix spacing 2012-11-04 00:14:17 +01:00
b236af84a4 Installer migrator functions for xchat.conf -> hexchat.conf 2012-11-03 23:54:05 +01:00
0481433d69 Update translations 2012-11-03 21:34:00 +01:00
434368412a Update translation template 2012-11-03 21:31:11 +01:00
cdfc56a80a Merge pull request #223 from mikelolasagasti/basque
Add missing Basque language
2012-11-03 13:27:44 -07:00
c45fbe1bb3 Remove identd text event coz it doesn't work 2012-11-03 21:04:07 +01:00
2846b66284 Add missing Basque language 2012-11-03 20:57:21 +01:00
21b3267e8a Update translations 2012-11-03 19:32:20 +01:00
ec83e04d11 Update translation template 2012-11-03 19:21:48 +01:00
7e1729c7b6 Make CAP messages consistent 2012-11-03 19:17:35 +01:00
1ac033e42a Text event for identd 2012-11-03 19:04:47 +01:00
76f43ce583 Make identd messages consistent with SASL messages 2012-11-03 18:39:11 +01:00
7d664e755e More robust CAP management and CAP multi-prefix support 2012-11-03 18:29:08 +01:00
7c1d2366b1 Fix icon rendering in HexChat (sub)windows 2012-11-03 09:10:38 +01:00
a9c7e40b5b Add text events for CAP ACK/REQ 2012-11-03 07:46:51 +01:00
80fdce76c4 Updated user list icons 2012-11-03 06:39:58 +01:00
9ee3613bad Add export config stub 2012-11-03 06:29:51 +01:00
27391f458f Update translations 2012-11-03 05:30:15 +01:00
d32f32df05 Update translation template 2012-11-03 05:20:39 +01:00
e2908c38a2 Make SASL user name color consistent with other user name colors 2012-11-03 04:53:17 +01:00
58adceb4e9 Provide text events for SASL auth, SASL responses and server capabilities 2012-11-03 04:45:32 +01:00
432f0781c4 Update FAQ according to recent icon file name changes 2012-11-03 03:16:06 +01:00
98ef77406d Varname consolidation for the rest of pixmaps 2012-11-03 02:57:24 +01:00
c65e16fd00 Relocate hexchat.png and hexchat.ico and some more varname cleanup 2012-11-03 02:33:44 +01:00
259ed9644d Relocate version.txt, leave a copy in old place for a while for upgrades to work 2012-11-03 01:58:56 +01:00
c07c888321 Relocate hexchat.desktop 2012-11-03 01:52:46 +01:00
396d74322a Rainbow user list colors and more senseful variable names 2012-11-03 01:42:47 +01:00
58e7e967db Merge pull request #218 from TingPing/usericon
added support for op+3 icons
2012-11-02 15:23:54 -07:00
da43158772 added support for op+3 icons 2012-11-02 00:55:24 -04:00
7bd55c4f43 Merge pull request #212 from blasphemy/malloc
that malloc should have been made bigger when renaming xchat.conf to hex...
2012-10-31 07:37:23 -07:00
bc06dffd5d that malloc should have been made bigger when renaming xchat.conf to hexchat.conf 2012-10-31 01:40:11 -04:00
64f1a43d07 Update translations 2012-10-31 05:39:36 +01:00
7613c796b7 Add another temporary file to gitignore 2012-10-31 05:35:30 +01:00
49d11c26ca Update translation template 2012-10-31 05:34:35 +01:00
5567b9ab27 Raw Log consistency with menu 2012-10-31 05:31:35 +01:00
78b5f5625d Make rawlog text copy behaviour consistent with the main text box
And make it close upon pressing Escape
2012-10-31 05:18:20 +01:00
ea0d3059f4 Eliminate even more warnings and bump warning level to 3
Shouldn't need to go any higher, level 4+ gives insane warnings
2012-10-30 22:13:40 +01:00
cb0f6c8c91 Eliminate some more warnings 2012-10-30 21:25:58 +01:00
284dbfbe3d Supposed fix for identd ipv6 compiler warnings 2012-10-30 20:57:49 +01:00
f6c2698701 Some quickfixes 2012-10-30 13:42:18 +01:00
9ae206e08e Initial conversion of the Perl interface docs to Markdown 2012-10-30 13:39:04 +01:00
2d256315ea Python docs cosmetics 2012-10-30 12:10:46 +01:00
aeb60b72cd Update translation files 2012-10-30 12:01:04 +01:00
75c70a2f94 Update translation template once again 2012-10-30 11:58:43 +01:00
99a288fb47 Typofix 2012-10-30 11:56:27 +01:00
02f58fd515 Update translation template 2012-10-30 11:50:24 +01:00
507af191bd Now some final cleanup (I hope) 2012-10-30 11:47:12 +01:00
a51a69134b Nah, even more rebranding 2012-10-30 11:35:39 +01:00
82936df2af Some final rebranding 2012-10-30 10:42:37 +01:00
012d78b2f6 Plugin doc fixes 2012-10-30 10:38:45 +01:00
29f7a9180c Rebrand get_info(xchatdir) but remain compatible for Perl and Python 2012-10-30 09:59:58 +01:00
66be50f335 Some more fixes 2012-10-30 09:16:21 +01:00
b6c89e7670 Fix Unix compilation 2012-10-30 09:05:48 +01:00
8d6f4d9d40 Some remaining fixes 2012-10-30 08:58:50 +01:00
e681eafa78 Rebranding for the rest of plugin* 2012-10-30 08:42:48 +01:00
97dc13fde7 Rebranding for XCHAT_PLUGIN_HANDLE 2012-10-30 07:46:28 +01:00
45d4fa5801 Rebranding for XCHAT_EAT_* 2012-10-30 07:40:37 +01:00
a5ab455b34 Forgot this one 2012-10-30 07:31:33 +01:00
4b7c7c2bb1 Rebranding for XCHAT_FD_* 2012-10-30 07:25:40 +01:00
a87ad4a6ae Fix D-Bus plugin 2012-10-30 07:22:36 +01:00
91dd079add Rebranding for XCHAT_PRI_* 2012-10-30 07:18:25 +01:00
50a2335276 Remove old unused code 2012-10-30 07:02:28 +01:00
81747d996c Revert "Proof-of-concept compat mode for XChat"
This reverts commit ad16a2bfee.
2012-10-30 06:56:41 +01:00
ad16a2bfee Proof-of-concept compat mode for XChat 2012-10-30 06:56:25 +01:00
56973ae365 Eliminate some fe-gtk warnings 2012-10-30 05:42:59 +01:00
a37bc00b59 Remove unnecessary include 2012-10-30 05:42:02 +01:00
9f55b2a495 Fix Unix compilation 2012-10-30 04:10:41 +01:00
fc98a6d79d Remove hexchat-plugin.h duplicate 2012-10-30 04:07:33 +01:00
c73c9b4b31 Fix plugin function ordering 2012-10-30 03:55:25 +01:00
251fe8250e Update translations 2012-10-30 03:33:15 +01:00
0b90bfbf7b Update L10n howto with some notes 2012-10-30 03:33:08 +01:00
cdc720c97b Add speller strings to translation template 2012-10-30 02:57:49 +01:00
5788ab0c5b Update translation template 2012-10-30 02:38:50 +01:00
9bf00ac214 Don't provide untranslatable strings for translation 2012-10-30 02:28:06 +01:00
8fc9691704 Even more version bumps 2012-10-29 00:56:16 +01:00
2168ef409e Update version number once moar 2012-10-29 00:52:28 +01:00
07cbcfe846 Make HexTray filename consistent with the rest 2012-10-29 00:42:52 +01:00
09c7f2c935 Remove unused var 2012-10-29 00:34:15 +01:00
15c2ff2d54 Convert HexTray to the plugin config API 2012-10-29 00:32:59 +01:00
9a57ca41b1 Use consistent addon config filenames 2012-10-28 23:37:45 +01:00
da54f7cc11 Remove plugin20.html remnant 2012-10-28 23:33:45 +01:00
717bf34816 Merge pull request #204 from TingPing/faq
Removed html docs from spec
2012-10-28 15:30:13 -07:00
f10e98fac0 Removed html docs from spec 2012-10-28 17:28:25 -05:00
16b14ec765 Saner limit 2012-10-28 20:54:08 +01:00
f90f51a898 ChangeLog cosmetics 2012-10-28 16:26:44 +01:00
ab18a31311 Remove last 2 HTML files 2012-10-28 16:22:25 +01:00
18ef7b93ae Add HTML sources, convert them later 2012-10-28 16:20:51 +01:00
da83448c09 Random FAQ cosmetics 2012-10-28 16:08:40 +01:00
9c89cd7817 Fix Python docs 2012-10-28 15:36:28 +01:00
31ed205e6e Cosmetics 2012-10-28 15:35:34 +01:00
24ed6e7d11 Convert XChat changelog to Markdown 2012-10-28 14:44:22 +01:00
edbec158d4 Fix escapes in readme 2012-10-28 14:43:41 +01:00
7b8ffc6ee1 Remove old HTML docs 2012-10-28 14:14:40 +01:00
85da4bd9bb Fix newline 2012-10-28 14:00:27 +01:00
048b17dcbd Fix escapes 2012-10-28 13:58:09 +01:00
474d064c1f Convert plugins.html to Markdown 2012-10-28 13:52:43 +01:00
65fe8bd935 Update links and add placeholder files 2012-10-28 11:01:25 +01:00
1cf9209cd7 Consistency FTW 2012-10-28 10:53:15 +01:00
6a9e7bb4d3 Further doc relocations and conversions 2012-10-28 10:49:44 +01:00
fe6bda343b More hacking cosmetics 2012-10-28 09:58:09 +01:00
52ad256474 Hacking cosmetics 2012-10-28 09:55:45 +01:00
33cd1a2149 Add notes about translating HexChat + typofix 2012-10-28 09:26:43 +01:00
df635db882 Let's see how it works with 2 seconds 2012-10-28 03:13:07 +01:00
4880b2977a Nick box icon requires a restart 2012-10-28 03:09:59 +01:00
85119b9a80 Add option to hide user mode icon in nick box 2012-10-28 03:05:50 +01:00
6cb0c96319 Fix SysInfo displaying garbage for too long lines 2012-10-28 02:25:54 +01:00
6ae224107f Use Consolas as the default font where available 2012-10-28 02:08:36 +01:00
e0f61605de Some more unuseful but fancy eyecandy 2012-10-28 01:54:15 +02:00
3ac5a67215 Update translations 2012-10-28 01:48:15 +02:00
194b21666f Update translation template 2012-10-28 01:42:30 +02:00
3bfd749037 Even more eyecandy 2012-10-28 01:37:01 +02:00
e39a4db309 Add notes about managing text events 2012-10-28 01:06:09 +02:00
9550862cb0 Fix text event argument counts 2012-10-28 01:05:55 +02:00
79b00170ba Even moar polishing 2012-10-28 00:12:53 +02:00
fe1d958838 More polishing for the About dialog 2012-10-28 00:05:40 +02:00
d892b3346e Accidental commit is accidental 2012-10-27 23:46:37 +02:00
90ba33cda3 Merge branch 'master' of https://github.com/hexchat/hexchat 2012-10-27 23:45:13 +02:00
745c0913f6 Redesign the About dialog a'la XChat 2012-10-27 23:44:17 +02:00
6e9c3254fd Merge pull request #196 from TingPing/faq
updated fedora/red hat spec
2012-10-27 13:07:21 -07:00
646c5a8975 fixed dep in spec 2012-10-27 15:15:12 -03:00
b150986402 Update share/misc/hexchat.spec 2012-10-27 14:42:36 -03:00
d33a16ae01 Convert HACKING to Markdown format 2012-10-27 19:31:51 +02:00
68d3552ceb updated spec 2012-10-27 12:28:51 -05:00
29c5385d6e Add manual page 2012-10-27 19:07:59 +02:00
bfdb3729c4 Use Unix EOL for docs 2012-10-27 18:50:06 +02:00
366e76e3a7 Fix color codes for consistency's sake 2012-10-27 18:27:28 +02:00
74abaedffa Don't forget to build make-te before common 2012-10-27 18:12:35 +02:00
c7ca4a5e68 Fix spacing 2012-10-27 18:09:54 +02:00
c494001d50 Ignore generated text even headers 2012-10-27 17:43:39 +02:00
e9c9bd4ebe build: move automake "foreign" option to AM_INIT_AUTOMAKE
This works towards allowing using autoreconf(1) later.
2012-10-27 17:42:40 +02:00
a46df34a2a Remove baked text event headers 2012-10-27 17:39:51 +02:00
b8927e9d1d build: use BUILT_SOURCES to properly order text*.h before libhexcommon.a 2012-10-27 17:25:34 +02:00
6d27fce863 More ignores 2012-10-27 15:57:47 +02:00
7f71933c70 Add make-te binary to gitignore 2012-10-27 15:43:35 +02:00
d15d07212d Change default icons 2012-10-27 13:55:52 +02:00
cd3ade3046 Change default text events 2012-10-27 13:32:04 +02:00
9634e4574f Change default colors 2012-10-27 13:32:02 +02:00
a98dc18d55 Ignore generated config.h properly on Unix 2012-10-27 01:26:32 +02:00
aae8c393ed Update config.rpath by running gettextize 2012-10-27 01:05:41 +02:00
1ecc6b3155 g_str_hash is inconsistent, always recalculate it 2012-10-26 15:06:30 +02:00
e38c6696cd Fix buffer size 2012-10-26 14:44:46 +02:00
d012ca1eb8 Don't error out when libpci is not found 2012-10-26 14:36:45 +02:00
e3be4a0e0a Eliminate some more plugin warnings 2012-10-26 13:38:13 +02:00
46b0fe70eb Add commands for modifying UPD options 2012-10-26 13:32:08 +02:00
89252106da Add configurable delay and check frequency for UPD and eliminate some warnings 2012-10-26 13:00:09 +02:00
bf42c2b60f Fixes after file moves 2012-10-26 01:13:32 +02:00
ef158aadbf Fix doc URLs for Start Menu icons 2012-10-26 01:06:00 +02:00
fb8d1a383d Converting, renaming, relocating 2012-10-26 01:03:52 +02:00
a3c3608b1d Remove unused MSI dependency 2012-10-26 00:37:36 +02:00
5fe1ff1b28 Add hexchat-text to gitignore 2012-10-26 00:35:53 +02:00
359e780f8a Fix FAQ filename 2012-10-26 00:33:22 +02:00
644d24b0d7 Disable spell langs option when spelling is disabled 2012-10-26 00:24:06 +02:00
48452aca09 Merge pull request #186 from TingPing/faq
Fixed some escapes
2012-10-25 15:11:29 -07:00
823331646c Fixed some escapes 2012-10-25 17:07:59 -04:00
7827d93c5d Merge pull request #185 from TingPing/faq
Converted FAQ to markdown and cleaned up.
2012-10-25 13:40:11 -07:00
3538521906 Fixed custom icons path 2012-10-25 17:39:52 -03:00
f359f8f4ba Update faq.md 2012-10-25 17:14:04 -03:00
b1db3cf514 Eliminate compiler warning and update Windows Server name 2012-10-25 22:04:16 +02:00
05407ee466 Update translations 2012-10-25 21:24:31 +02:00
cd380f6744 Update translation template 2012-10-25 21:20:30 +02:00
c5c92a47d1 Fix L10n generation 2012-10-25 21:17:18 +02:00
215325c058 Move SASL passphrase generation code to utils 2012-10-25 21:08:26 +02:00
f50a1bf1dd Reorganize Preferences/Appearance 2012-10-25 20:39:45 +02:00
a8f3fdabde Updated faq.md 2012-10-25 14:27:37 -04:00
21424154a8 Hide "empty" SASL messages during auth 2012-10-25 20:24:20 +02:00
35e6160b71 fixed typo 2012-10-25 14:19:23 -04:00
a626c701a6 Converted FAQ to markdown and cleaned up. 2012-10-25 13:48:30 -04:00
bd6e39ffa9 Typofix 2012-10-25 19:47:20 +02:00
ce3fa431f4 Check for unallocated string 2012-10-25 18:15:35 +02:00
4a5be24804 Merge pull request #184 from blasphemy/spacing
fix alignment (space is off by 1)
2012-10-25 08:05:07 -07:00
36aab9a2b3 fix alignment (space is off by 1) 2012-10-25 10:56:37 -04:00
7871d8ba2f Fix configure script 2012-10-25 16:46:11 +02:00
7cc2dc36e5 Get rid of the SASL plugin 2012-10-25 16:40:26 +02:00
82a903f347 Rename HexTray config file 2012-10-25 16:24:03 +02:00
4f4958878a Built-in SASL support and other CAP fixes 2012-10-25 16:17:21 +02:00
47310229a4 Some more rebranding for consistency's sake 2012-10-25 01:33:23 +02:00
9690fa532d Update migration instructions 2012-10-25 00:54:49 +02:00
9eb32dd16c Update translations 2012-10-25 00:48:44 +02:00
87aa65653b Use own configfile 2012-10-25 00:42:34 +02:00
0003b85ccb Bypass the identify-msg patch as well, breaks SASL 2012-10-25 00:20:21 +02:00
842e74dce8 Quickfix for plugin breakage after the DCC patch 2012-10-25 00:18:02 +02:00
d6dec82d3d Some more rebranding 2012-10-25 00:16:27 +02:00
1a75c8e1be A lot more rebranding 2012-10-24 21:33:02 +02:00
6d356a5e51 Rename libxchatcommon to libhexchatcommon 2012-10-24 20:41:30 +02:00
bbf2ad1793 Fix fe-text compilation - it still segfaults though 2012-10-24 20:41:13 +02:00
d26aa1bf82 Move scrollback lines to Logging 2012-10-24 19:19:06 +02:00
d9b5900525 Add support for ircd-seven identify-msg (author unknown) 2012-10-24 18:52:13 +02:00
464b005c97 Fix compilation on Unix with GLib 2.24 or older 2012-10-24 18:34:07 +02:00
aa917d568f System includes before own includes 2012-10-24 13:13:25 +02:00
bdbb3d14bd Fix error message printing for raw numeric 263 2012-10-24 12:54:02 +02:00
ac9bbc6d99 Merge pull request #180 from Arnavion/fix-filename-encoding
Fix filename encoding error for DCC transfers of files with non-ASCII characters in their name
2012-10-23 12:18:59 -07:00
8902f52eb9 Removed DCC::destfile_fs since it was now the same as DCC::destfile. Fixed usage of g_stat to use GStatBuf instead of OS-native struct stat. 2012-10-22 19:08:36 -07:00
8c7ec909b8 Replaced use of OS file I/O functions which expect filenames in system codepage with GLib's, since GLib's functions work with UTF-8 and GLib handles converting the filename to system codepage for us. 2012-10-22 19:07:28 -07:00
1cc599a0f9 Build DCC file's path using platform's directory separator instead of always using forward slash. 2012-10-22 19:06:18 -07:00
a9fe82a1b8 Fix nick change dialog being barely visible in most cases 2012-10-22 22:27:30 +02:00
332bde3c99 Update translations 2012-10-22 20:46:44 +02:00
06ad3e8286 Update translation template 2012-10-22 20:38:22 +02:00
3a659d8b05 Even more cosmetics, fixes and new options 2012-10-22 20:33:43 +02:00
75169d7181 Add GUI option for compact mode 2012-10-22 20:10:13 +02:00
a23a08460c Use better wording 2012-10-22 20:03:32 +02:00
e05c13a097 More fixes, sorting and cleanup 2012-10-22 20:00:08 +02:00
6daa63f113 Typofix 2012-10-22 19:03:28 +02:00
bc4fb2fd0e Fix user count options 2012-10-22 18:59:45 +02:00
f5338e014a Fix nick box setting 2012-10-22 18:34:31 +02:00
fd47409e76 Fix translations 2012-10-22 17:57:48 +02:00
f11f878fcf Update translations 2012-10-22 17:43:41 +02:00
d444d4dd9d Add Malayalam translation 2012-10-22 17:39:00 +02:00
2c256725e8 Use better wording 2012-10-22 17:23:04 +02:00
ae137af9e3 Update translation template 2012-10-22 17:11:01 +02:00
302a06e2e1 Fix previous, failed attempt at fixing the default folder for DCC transfers 2012-10-22 17:00:48 +02:00
b007592cde Fix DCC accept default value 2012-10-22 16:24:19 +02:00
e6e252e540 Fix default network 2012-10-22 16:14:23 +02:00
107938971c Apparently, auto_indent is not needed anymore 2012-10-22 16:09:11 +02:00
0a511852fe Fix Unix compilation 2012-10-22 15:59:52 +02:00
51ae33cbe8 Variable cleanup for the rest 2012-10-22 15:55:43 +02:00
545b7dc6ff Variable cleanup for irc_* 2012-10-22 14:50:36 +02:00
5c49b45a6d Variable cleanup for input_* 2012-10-22 14:18:20 +02:00
bf27d43052 Variable cleanup for gui_* 2012-10-22 13:49:28 +02:00
87e903cd73 Variable cleanup for flood_* 2012-10-22 12:20:47 +02:00
b563b93414 Variable cleanup for dcc_* 2012-10-22 12:10:55 +02:00
cf8ea26498 Variable cleanup for completion_* 2012-10-22 10:10:19 +02:00
a05817c0eb Variable cleanup for away_* 2012-10-22 09:53:28 +02:00
0e8ac8b7a1 Fix LSB filename 2012-10-22 09:23:32 +02:00
fba30c4cf8 Rebrand xchatprefs 2012-10-22 09:00:35 +02:00
25f2506984 Add missing define for Unix 2012-10-22 08:59:00 +02:00
f98b3a5609 Remove duplicate 2012-10-22 08:54:21 +02:00
c42f8b98df Get rid of platform-specific settings (except for fast DCC), make migrations smoother 2012-10-22 08:51:54 +02:00
4f68ac6cc0 Get rid of ALL gui_tweaks 2012-10-22 08:37:28 +02:00
445e8c006e Learn some grammar 2012-10-22 08:26:18 +02:00
1665443062 Get rid of gui_tweaks 4 2012-10-22 08:24:52 +02:00
6cd5d086bb do_layout is required for dots to appear or disappear 2012-10-22 08:13:09 +02:00
9435851dee Get rid of gui_tweaks 8 2012-10-22 08:00:55 +02:00
02dd0ba560 Get rid of gui_tweaks 16 & 1 2012-10-22 07:24:52 +02:00
2cbae7f6a5 Get rid of gui_tweaks 32 2012-10-22 06:18:32 +02:00
0e88d01caf Get rid of gui_tweaks 64 2012-10-22 06:02:15 +02:00
e361efcf94 Rename tab_* to gui_tab_* 2012-10-22 05:38:52 +02:00
09c94486be Get rid of obsolete values 2012-10-22 05:36:08 +02:00
e5f8aaf8eb Add Windows version check to installer against overly frustrated Win2000 users 2012-10-22 05:13:27 +02:00
a909aa1817 Forgot to add title to changelog 2012-10-22 04:43:55 +02:00
ae95271d3a Change readme icon and add changelog icon as well 2012-10-22 04:40:32 +02:00
26e655daee Omit upcoming release 2012-10-22 04:10:57 +02:00
ef0a7a61b2 Add own changelog 2012-10-22 04:05:01 +02:00
01e8b50b4f EXTRA_DIST cleanup 2012-10-22 04:04:51 +02:00
de39738bbd Add README for people who still can't use Google 2012-10-22 02:34:20 +02:00
cdae8fecdd Update plugin autoload info in the FAQ 2012-10-22 01:37:36 +02:00
feae1450c6 Update translation template 2012-10-21 14:46:30 +02:00
4fd5cf7043 Keep the installer component lists sorted 2012-10-21 14:38:47 +02:00
db4cb3d2f2 Cosmetics 2012-10-21 14:30:10 +02:00
77d3c50da1 Typofix 2012-10-21 14:26:46 +02:00
8404ebf1d4 Even more SysInfo fixes 2012-10-21 14:24:01 +02:00
1e7d7101c6 Some more cleanup for SysInfo 2012-10-21 12:49:55 +02:00
d9dc34499d A LOT of cleanup for SysInfo-Unix 2012-10-21 12:15:41 +02:00
f0b909ea68 Add Mageia support to SysInfo 2012-10-21 09:56:48 +02:00
3d01c78248 First bunch of fixes to SysInfo-Unix, now it works - barely 2012-10-21 09:56:09 +02:00
62c9375bc9 Compilation fixes and integration with HexChat 2012-10-21 08:06:09 +02:00
bc57507a4c Add Arch patches to SysInfo-Unix and rebrand it 2012-10-21 07:15:48 +02:00
187351fa61 Add vanilla X-Sys sources 2012-10-21 06:44:29 +02:00
cb891a9732 Rename WinSys on the code level 2012-10-21 06:40:28 +02:00
c54cd4181b Rename WinSys files 2012-10-21 06:33:33 +02:00
ddbce0b9fe Move warning level to property sheet 2012-10-21 05:57:00 +02:00
df33905ad1 Relocate typedef.h 2012-10-21 04:41:59 +02:00
0ca97e2108 Fix tabulation 2012-10-21 03:51:40 +02:00
125cebb09a Fix Command button on Mac, round 2 2012-10-21 03:47:21 +02:00
8c297f6797 Supposed fix for using Command/Super button instead of Ctrl on Mac 2012-10-21 03:04:53 +02:00
0c04cfed7f Make modifier buttons truly abstract 2012-10-21 03:03:38 +02:00
ef18ded827 Update OS X name 2012-10-21 02:38:06 +02:00
d0268f1cf8 Supposed fix for opening links on Mac 2012-10-21 01:54:56 +02:00
9be155633f Don't show transparency options when compiling w/o Xlib coz they won't work 2012-10-20 23:36:51 +02:00
1418524090 Add note about the way Transifex treats email addresses 2012-10-20 23:28:01 +02:00
c9d3a20f7f Update translations 2012-10-20 20:36:21 +02:00
475bd96afb Update translation template 2012-10-20 20:30:41 +02:00
12456bf063 Use better wording 2012-10-20 20:23:57 +02:00
bfc8a1a1ed Reorganize the Settings menu and fix Search menu offset 2012-10-20 20:18:26 +02:00
29e96d7611 Fix dialog icon in userlist popup and add entry for Ignore 2012-10-20 19:58:41 +02:00
c1bc4303ce Fix TYPE_BOOL vs unsigned int inconsistency 2012-10-20 17:56:38 +02:00
99b68f6e24 Update set variable after English lang code change 2012-10-20 17:12:21 +02:00
6faa4767d8 Finally, update translation files from Transifex 2012-10-20 16:57:02 +02:00
2f2311a9c5 Update L10n howto with additional step required 2012-10-20 16:50:57 +02:00
e5a36abf90 Update translation template 2012-10-20 16:47:47 +02:00
4ee52cb4fa Remove Hebrew file, it fails to import to Transifex and barely contains translations anyway 2012-10-20 16:42:38 +02:00
5374d7cd1f Update translation template 2012-10-20 16:08:20 +02:00
2995b05794 Fix language codes and naming 2012-10-20 16:00:03 +02:00
d90ae8012a Add support for new languages in the language selector 2012-10-20 15:59:22 +02:00
89cf271024 Add new languages to the Unix build script 2012-10-20 15:47:40 +02:00
11d3783195 Add Afrikaans, Asturian, Danish, Gujarati, Hebrew, Indonesian, Kinyarwanda translations from the XChat Translation Project 2012-10-20 15:45:53 +02:00
725d03477f Update bundled ISO 3166 codes 2012-10-20 15:43:35 +02:00
084fa55b81 Update French translation 2012-10-19 23:59:07 +02:00
5915d3b4bd Regenerate L10n once moar (last time I hope) 2012-10-19 22:55:12 +02:00
fb7a6d9206 Update FAQ to reflect L10n changes 2012-10-19 22:11:21 +02:00
627f2220e4 Consistency FTW 2012-10-19 22:00:32 +02:00
5bc8b38826 Remove L10n test string from translations too 2012-10-19 21:59:54 +02:00
033ebcfee1 Remove L10n test string 2012-10-19 21:53:34 +02:00
85779e102c Replace email address 2012-10-19 21:33:16 +02:00
6661efde87 Add tutorial for managing Transifex 2012-10-19 21:31:11 +02:00
e85501bdff Update test strings in repo 2012-10-19 21:27:58 +02:00
1215336b2d Add L10n test string 2012-10-19 21:14:20 +02:00
aa54d0a8c1 Add Transifex config and update translations from the online resource 2012-10-19 20:58:44 +02:00
1f3a1f81c0 Update translations 2012-10-19 20:08:20 +02:00
d5477a81d6 Reorganize the Appearance tab 2012-10-19 19:37:10 +02:00
31242c94de Update Hungarian translation 2012-10-19 00:40:32 +02:00
0fe70aa212 Update translations 2012-10-19 00:38:30 +02:00
ff2f121d8a Add Nynorsk language 2012-10-19 00:34:47 +02:00
3fba4d508d Update Hungarian translation 2012-10-19 00:16:48 +02:00
dd21f8635b Update translations 2012-10-19 00:01:56 +02:00
cd21d1b623 Get rid of saveconf remnants, we save automatically 2012-10-18 23:55:47 +02:00
41e4b3a59c Add notes 2012-10-18 23:26:13 +02:00
3c5100510f Separate correctly the Win32-only code 2012-10-18 23:26:06 +02:00
9abfecf05e Hardcoded dropdown menu for language selection 2012-10-18 22:57:55 +02:00
b686a24d3b Add function for listing subdirs 2012-10-18 20:09:15 +02:00
06226c0799 Update win32 dirent.h implementation and use header instead of static library 2012-10-18 18:24:20 +02:00
e3a21d34b4 Add missing include 2012-10-18 17:54:03 +02:00
5acd848f79 Initial version of language selector GUI 2012-10-18 16:34:40 +02:00
4732505e30 Merge pull request #171 from ujdhesa/patch-1
Update po/sq.po
2012-10-18 01:30:54 -07:00
87522eb03d Update po/sq.po
Substituting more Xchat recurrences
2012-10-18 00:39:50 +03:00
c17005a9fe Merge pull request #170 from ujdhesa/master
Update for Albanian (sq) locale
2012-10-17 10:02:11 -07:00
6cc553f22e Update po/sq.po 2012-10-17 13:36:18 +03:00
d318d78b14 Remove accidentally included .mo file and don't let it ever happen again 2012-10-15 21:26:57 +02:00
1b2affc750 Update Hungarian translation against current HEAD 2012-10-15 21:24:49 +02:00
99022a91d9 Huge commit is huge - update translations 2012-10-15 20:21:20 +02:00
d61a3ff08c Add translation template 2012-10-15 20:21:02 +02:00
98701e3d6b Update .gitignore for L10n 2012-10-15 20:18:00 +02:00
c19fc07b9b Print previous value after /SET 2012-10-15 16:01:26 +02:00
13449c282a Reformat the /SET code 2012-10-15 16:00:07 +02:00
32eeec02ff Remove deprecated .desktop entry 2012-10-15 14:31:27 +02:00
831794e150 Only omit alerts when we're actually away 2012-10-15 13:46:23 +02:00
e8f7653cf0 Add SwiftIRC 2012-10-15 10:40:39 +02:00
c395a929e1 Merge pull request #162 from blasphemy/rebrand
rebrand
2012-10-15 01:27:45 -07:00
a62b033cb5 rebrand 2012-10-14 21:29:13 -04:00
de1a2a7b33 Version bump 2012-10-14 00:58:54 +02:00
bc4d4f6536 Fix misspelled words 2012-10-13 22:55:35 +02:00
84c536e4ea Compatibility for Automake 1.12.4+ 2012-10-13 22:26:35 +02:00
4482f8d1f5 Cosmetics 2012-10-13 20:59:52 +02:00
68e795a595 Accept license agreement by default 2012-10-13 18:55:43 +02:00
c01ee90ef6 Provide builtin defauls for treeview icons 2012-10-13 15:31:25 +02:00
f7013f70a5 By default, use pure white background color and use background color for UI elements 2012-10-13 14:13:58 +02:00
cf78762b69 Some HexChat-Text rebranding work left 2012-10-13 13:05:01 +02:00
b67b223c26 Add option to omit alerts when marked as being away 2012-10-13 12:38:01 +02:00
0ec02c13c7 Make beep consistent with other alerts 2012-10-13 11:53:39 +02:00
05b6e0b330 By default, use <config>/downloads for DCC file transfers when in portable mode 2012-10-13 10:49:29 +02:00
dfd4828ad2 Fix opening folders in portable mode 2012-10-13 10:26:32 +02:00
6f1185c00e get_xdir_fs() cleanup 2012-10-13 10:14:34 +02:00
ca3fa043f0 Save URLs to disk on-the-fly and provide an option for toggling it 2012-10-13 10:03:39 +02:00
d4f3738ca8 This does not belong here 2012-10-13 08:45:41 +02:00
cbd72ff455 Get rid of auto_save, we always want to save 2012-10-13 08:43:57 +02:00
dbef9c9eb4 Speed up Non-BMP filtering 2012-10-13 07:06:38 +02:00
902063d932 Get rid of some hardcoding 2012-10-13 06:17:27 +02:00
d20daad417 Implement /ADDSERVER 2012-10-13 06:03:14 +02:00
de7a4aee31 Make identd check easier to read 2012-10-13 04:25:39 +02:00
b43e567dbf Show user name sent by identd 2012-10-13 04:19:56 +02:00
77fb21c5d5 Merge pull request #142 from RichardHitt/master
Fix "Fix URL Detection"
2012-10-08 13:29:38 -07:00
5f60820eba Fix "Fix URL detection". First-character test in linux should be for
equal, rather than not-equal.  If first character is a slash return
WORD_PATH.
2012-10-08 12:20:11 -07:00
8df11c030c Fix Wikipedia URL detection - URLs inside parentheses won't work 2012-10-07 13:27:44 +02:00
59f32ccb3a Fix URL detection 2012-10-07 03:00:52 +02:00
b4e78e0455 Add SSL port to freenode 2012-10-06 16:49:11 +02:00
86596d080d Add Fusion Latina and IRCHighWay 2012-10-06 16:44:31 +02:00
151bee59f0 Update NSS-WDK patch for NSS 3.13.6 2012-10-06 01:14:51 +02:00
3b8d2aeca8 Fix mpcInfo-xp not using the WDK toolset 2012-10-05 12:21:08 +02:00
003fa2dcc5 Ignore Mono built HTM 2012-10-05 01:17:31 +02:00
89bee16e56 Version bump 2012-10-05 00:41:53 +02:00
2f09db1d4f Fix operator precedence oversight (AND vs OR) 2012-10-05 00:30:35 +02:00
afe16e7bb7 Nasty copy-paste problem 2012-10-05 00:24:21 +02:00
fb2413793c Install SASL plugin by default 2012-10-05 00:16:37 +02:00
aaa19466d6 Add Mono project for HTM 2012-10-04 23:44:55 +02:00
02fd5a2aff Enable timestamps by default and change default format to include seconds 2012-10-04 22:12:14 +02:00
24de2899ec Add libwimp and libpixmap makefiles, don't work yet though 2012-10-04 21:41:20 +02:00
ae2cfa16d9 Add project for generating text events 2012-10-04 21:07:26 +02:00
3b19fe1374 Generate a new upgrade code for vs2012 platform toolset so that both can be installed simultaneously 2012-10-04 20:33:23 +02:00
82debac62d No registry keys for WDKPT 2012-10-04 20:24:16 +02:00
7bbe6d4eab Provide sources for both platform toolset 2012-10-04 20:15:23 +02:00
cc903db727 Add scripts for building the spelling dictionaries SFX 2012-10-04 19:57:15 +02:00
5af19dfb64 Remove unused references 2 (TingPing) 2012-10-04 19:03:09 +02:00
ff6e1ef94a Remove unused references (TingPing) 2012-10-04 19:02:36 +02:00
2ea1b492d5 Merge pull request #102 from Arnavion/allow-configure-libproxy
Allow user to enable or disable libproxy support explicitly
2012-10-04 07:22:04 -07:00
33e0840294 Add support for backslash as drive root for full path logs 2012-10-04 15:42:44 +02:00
df6e3fd953 Add note about special folder 2012-10-04 14:53:55 +02:00
723486913f Fix HTM config dir handling both on Windows and Unix 2012-10-04 14:51:00 +02:00
94c525eee9 Fix for erroneous full path check 2012-10-03 23:18:10 +02:00
e5b230b0cd Fix WinSys compilation without WDK 2012-10-03 21:13:05 +02:00
b797a899c8 Use multiprocessor compilation for GTK+, otherwise it's waaay too slow 2012-10-03 21:00:32 +02:00
288e0ccbdd Fix the remaining path breakages after the downgrade 2012-10-03 20:51:44 +02:00
981c7b9482 Now really finish the reversion 2012-10-03 18:54:15 +02:00
018e32e693 Nuke the remnants of the nonbmp plugin 2012-10-03 18:29:22 +02:00
90db7e85c2 Complete the VS2010 reversion 2012-10-03 18:26:48 +02:00
8131d66da7 Unified copy for xp solution too 2012-10-03 18:23:03 +02:00
f039a4264d Fix solution versions 2012-10-03 17:54:06 +02:00
12c7600024 Get rid of useless .exp files 2012-10-03 16:35:10 +02:00
4b699210bd Move license files to share\doc 2012-10-03 16:31:24 +02:00
73282c2d6c Fix libxml2 path according to VS downgrade 2012-10-03 15:49:06 +02:00
5b8491846d Fix platform toolset for certain projects in legacy solution 2012-10-03 13:52:31 +02:00
da46225034 Revert to VS2010 part4 2012-10-03 13:50:31 +02:00
9fd15ec990 Revert to VS2010 part3 2012-10-03 13:46:24 +02:00
ae602d4428 Revert to VS2010 part2 2012-10-03 13:36:07 +02:00
e2c532c679 Revert to VS2010 part1 2012-10-03 13:29:56 +02:00
822715856e Update GIMPNet name and servers 2012-10-03 11:29:59 +02:00
a3b2a203e7 Update default URL grabber limit 2012-10-02 22:03:15 +02:00
c80858f919 Merge pull request #115 from RichardHitt/master
Fix memory leak related to url grabbing
2012-10-02 13:02:17 -07:00
6e3efe2622 Remove another WDK-only thing 2012-10-02 20:43:14 +02:00
0986891a66 Add NLS to GTK+ 2012-10-02 20:38:08 +02:00
ca65aa7edc Fix copying 2012-10-02 20:11:52 +02:00
3cca76f051 Fix build path 2012-10-02 19:47:07 +02:00
3b38ad4d80 Fix NLS generation 2012-10-02 19:46:57 +02:00
d5b272b0c8 These directives were only required for the WDK 2012-10-02 19:38:07 +02:00
ccd2fd6c77 Update dependency extractor scripts 2012-10-02 19:17:48 +02:00
caa270922f Fix release path for HTM, C# projects don't support property sheets to use a separate xp project instead 2012-10-02 18:47:03 +02:00
1d7773f735 Use explicit project names, output filenames depend on them 2012-10-02 18:40:23 +02:00
e9e0c59065 Fix intl lib name for xp solution 2012-10-02 18:33:30 +02:00
78cbceee4e Remove the last 2 remnants too 2012-10-02 18:29:11 +02:00
63a47f0135 Update old xp copy project too 2012-10-02 18:26:34 +02:00
9b5766c46b Update gitignore to reflect recent changes 2012-10-02 18:22:29 +02:00
de70630cef Oops, wrong find'n'replace 2012-10-02 18:21:16 +02:00
75fa95d3a3 Fix xp deps path 2012-10-02 18:16:18 +02:00
567270d5a7 Remove hardcoding as much as possible 2012-10-02 18:15:49 +02:00
24aad3fecf Move copy part to property sheet part 1 2012-10-02 16:42:06 +02:00
c342b29f77 Use new GTK+ path and fix intl lib name 2012-10-02 16:06:29 +02:00
ab2d0b736c Change platform toolset to Visual Studio 2012 2012-10-02 16:05:20 +02:00
a57a7d3f88 Add XP (WDK) solution as a fallback option 2012-10-02 16:00:13 +02:00
47193043a7 Add Enchant build scripts 2012-10-02 14:35:59 +02:00
149dc70821 Add GTK+ solution and release scripts 2012-10-02 13:53:54 +02:00
42c523bf3c Pango depends on HarfBuzz after 1.30.x 2012-10-02 13:04:56 +02:00
0a68629dae Add Pango solution and release scripts 2012-10-02 12:59:27 +02:00
93039b3305 Remove unistd.h stub 2012-10-02 10:59:46 +02:00
189e4168cb Fix Fontconfig unistd.h inclusion 2012-10-02 10:54:19 +02:00
94ad6dc012 Add cairo solution, release scripts and patches 2012-10-02 10:26:01 +02:00
2d2afd9a59 Add license for libpng releases 2012-10-02 10:12:37 +02:00
f22979bafb Cosmetics 2012-10-02 10:02:57 +02:00
62903cd171 Fix memory leak related to url grabbing 2012-10-01 12:53:25 -07:00
9c3ea36483 Add Pixman solution and release scripts 2012-10-01 16:25:02 +02:00
f618f914cd Use win-iconv for Fontconfig 2012-10-01 15:43:19 +02:00
5a5c1798aa Add Fontconfig release scripts 2012-10-01 14:08:20 +02:00
67c9bdb289 This is not required anymore, Fontconfig depends on libxml2 already 2012-10-01 10:42:01 +02:00
1694825ed8 Expat can be replaced with libxml2, 1 dependency less 2012-10-01 10:40:27 +02:00
77f953364d Add Fontconfig solution 2012-10-01 10:38:44 +02:00
73008387e8 Add GDK-PixBuf solution and release scripts 2012-09-30 22:22:49 +02:00
db88a34c52 Cosmetics 2012-09-30 22:22:26 +02:00
6637e3c922 Add missing includes to distribution 2012-09-30 22:12:02 +02:00
e7e0eda15b Add suffix for GLib DLLs 2012-09-30 21:41:46 +02:00
d6c13e0f89 Add ATK solution and release scripts 2012-09-30 21:41:34 +02:00
f8c7152785 Add GLib solution and release scripts 2012-09-30 20:16:39 +02:00
d168882a32 Add libpng solution and release scripts 2012-09-30 19:33:46 +02:00
b192eecee2 Note to self 2012-09-30 18:08:52 +02:00
b451ebc94f Add libffi build scripts and patch for borked mozilla-build script 2012-09-30 18:04:45 +02:00
5873bf9e5d Add OpenSSL build scripts 2012-09-30 17:20:18 +02:00
ab9b121ff5 Fix path for deps 2012-09-30 16:59:11 +02:00
08634733d2 Move stuff to mozilla-build, OpenSSL and GTK+ don't like spaces 2012-09-30 16:55:32 +02:00
19fdfa14df Add Lua build scripts 2012-09-30 15:45:34 +02:00
70cd723e2c Merge pull request #108 from TingPing/python
Use proper version number for python module attribute
2012-09-29 06:16:48 -07:00
8fc45171c5 Use proper version number for module attribute 2012-09-29 02:55:33 -03:00
ce75a6034f Limit the number of URLs to keep and add GUI options for it 2012-09-29 01:54:11 +02:00
dd7a82e3b2 Enchant depends on GLib 2012-09-29 00:36:08 +02:00
064b020424 Pixman already depends on libpng 2012-09-28 23:04:03 +02:00
b3d00a8dc0 Add gettext-runtime build scripts and patches 2012-09-28 22:27:58 +02:00
179a1db89a Copy-paste is bad 2012-09-28 22:10:20 +02:00
9818573975 Add libxml2 solution and release scripts 2012-09-28 21:01:59 +02:00
cd832c048f Pixman depends on libpng 2012-09-28 20:29:27 +02:00
94289ca5f7 libxml2 depends on win-iconv 2012-09-28 20:06:48 +02:00
5f8ab3ce13 It's actually called libxml2 2012-09-28 19:52:01 +02:00
d3ceaa723d Add FreeType solution and release scripts 2012-09-28 19:41:56 +02:00
50bf1b5959 Add Expat solution and release scripts 2012-09-28 18:53:53 +02:00
f816bd4d71 Add win-iconv build scripts 2012-09-28 18:05:49 +02:00
b783207bca Remove package before creating a new one 2012-09-28 18:05:33 +02:00
7d0a175dc2 Some more zlib cosmetics and x64 build script 2012-09-28 17:19:49 +02:00
a6c7598a2f Fix zlib license file name 2012-09-28 17:17:09 +02:00
2ea5dc60d5 zlib build script cosmetics 2012-09-28 17:16:48 +02:00
a738892ad1 Add zlib build script 2012-09-28 13:41:21 +02:00
00fbf43584 KISS! 2012-09-28 01:48:42 +02:00
a07011007f Save URL lists in config dir by default 2012-09-28 01:04:53 +02:00
2f237427ee Add dependency graph 2012-09-25 17:01:39 +02:00
2c2419f230 Add strlcat() and strlcpy(), might convert to them in the future 2012-09-24 02:39:52 +02:00
3f9c918b86 Allow user to enable or disable libproxy support explicitly using --enable-libproxy or --disable-libproxy 2012-09-24 07:35:50 +08:00
ba0bcc9214 Update Python and Perl descriptions 2012-09-23 23:45:15 +02:00
198e913ea9 Get rid of some useless notes 2012-09-23 23:37:04 +02:00
f586659f00 HexChat does run on Windows 2012-09-23 23:32:25 +02:00
5112e1b669 Add 2 new networks and fix some sorting 2012-09-23 23:17:20 +02:00
60696af03d Fix syntax error, remove extra parenthesis 2012-09-22 22:09:38 +02:00
10e6774f0e Allow full path for logs, actually it can be determined quite reliably 2012-09-22 22:03:42 +02:00
bc7eac560f Force relative path for logs, for full path you can still use symlinks anyway 2012-09-22 20:32:52 +02:00
cc694ad473 Merge pull request #98 from blasphemy/Ignore
no highlights for some more annoying nicks
2012-09-22 09:44:42 -07:00
4d47120863 AC_MSG_RESULT cleanup up part 3 (Arnavion) 2012-09-22 17:36:38 +02:00
f1c978475c AC_MSG_RESULT cleanup part 2 2012-09-22 17:15:57 +02:00
5009ceb190 PKG_CHECK_MODULES displays the output automatically, omit AC_MSG_RESULT (Arnavion) 2012-09-22 16:49:10 +02:00
0515aabc66 Merge pull request #96 from Arnavion/fix-broken-defines
Broken #defines after autoconf + configure due to misbehaving AS_AC_EXPAND macro
2012-09-22 07:12:44 -07:00
55ae7ed0f2 no highlights for some more annoying nicks 2012-09-21 14:59:50 -04:00
241e3bf566 Some rebranding work left 2012-09-20 22:47:44 +02:00
e6a0532fc2 On my system (openSUSE 12.2 / GNU bash, version 4.2.24(1)-release (x86_64-suse-linux-gnu) ), the shell doesn't like that the '=' character in 'if test...' doesn't have spaces around it. This causes the test to always be true, and thus the AS_AC_EXPAND macro only expands once. This led to two #define's in config.h containing broken values: HEXCHATSHAREDIR and DBUS_SERVICES_DIR. 2012-09-20 22:04:14 +08:00
b6ba409bce Open links with just left click by default 2012-09-16 11:53:19 +02:00
12294a3729 Fix indentation and update platform toolset installer 2012-09-16 00:29:22 +02:00
e173eed437 Force 5.x subsystem globally 2012-09-16 00:11:21 +02:00
2fc7047873 Remove "Full" installation option, most people blindly install things they don't need nor know how to use 2012-09-15 23:08:20 +02:00
e3452ce330 Fix filename and generate new product code for the new platform toolset 2012-09-15 22:15:53 +02:00
6942d2b4b1 Update solution to Visual Studio 2012 Express and get rid of mpcInfo 2012-09-15 21:52:47 +02:00
94065e3fe0 Update platform toolset installer too 2012-09-15 20:40:37 +02:00
dc6a9bc5b3 Update platform toolsets for Visual Studio 2012 2012-09-15 20:31:07 +02:00
50d287a12d Disable running WHO after joining channel by default 2012-09-15 01:50:59 +02:00
28b7ba80e9 Move python docs 2012-09-14 17:02:49 +02:00
ce4bb62df7 Merge pull request #94 from TingPing/python
Added Python Documentation
2012-09-14 07:57:23 -07:00
a223437189 Updated Python Docs 2012-09-14 09:01:28 -04:00
8eac2f0147 Added Python Documentation 2012-09-14 08:06:22 -04:00
78419d5ab3 Merge pull request #92 from TingPing/python
Added pluginpref to the python plugin.
2012-09-13 07:28:08 -07:00
eace2397e6 Reorganized if statement. 2012-09-13 02:19:53 -04:00
db4b665cd3 bumped python plugin version. 2012-09-13 02:00:36 -04:00
f7a227c488 Added pluginpref to the python plugin. 2012-09-13 01:56:47 -04:00
4d63830f66 Add EsperNet - the server list really needs a rewrite btw, IFDEFs are ugly 2012-09-09 14:36:21 +02:00
8cf6d493c6 Fix unchecked malloc 2012-09-05 11:44:52 +02:00
6e5c314e61 Don't make a numeric equation between chars (openSUSE) 2012-09-02 18:08:25 +02:00
511e72d936 README cosmetics 2012-09-02 13:32:08 +02:00
279009bb20 Consistency for the other Advanced pane too 2012-09-02 04:46:48 +02:00
d754200b42 Merge pull request #68 from RichardHitt/master
Enhance LASTLOG to use gtk_xtext_search_textentry()
2012-09-01 13:29:11 -07:00
1a102d9bff Some more consistency for variable names 2012-09-01 21:43:19 +02:00
4627b05089 Be consistent in Preferences 2012-09-01 21:40:56 +02:00
4f887a1e53 Consolidate color stripping for messages, topic and scrollback 2012-09-01 21:38:00 +02:00
fb00928c9d Add Chat4all network 2012-09-01 17:01:01 +02:00
c563d70aed Make sure HexChat won't run in portable mode if the user doesn't select it 2012-09-01 16:50:48 +02:00
c1dde82389 Make gtkrc a component so that users can preserve their theme settings between upgrades 2012-09-01 16:32:50 +02:00
a6f9b6d5a4 Add Unifont to the default list of alternative fonts 2012-09-01 16:12:40 +02:00
ed034bf80a Enhance LASTLOG to use gtk_xtext_search_textentry() 2012-08-28 19:10:03 -07:00
b7f5f045c6 Fix linking against gmodule 2012-08-23 16:27:34 +02:00
2ca267d1c8 Merge pull request #43 from flotwig/patch-4
reordered snoo because i dunno my ABC's
2012-08-05 23:38:03 -07:00
868408ff3d reordered snoo because i dunno my ABC's 2012-08-06 00:22:25 -03:00
c707be1f70 Merge pull request #42 from flotwig/patch-3
added Snoonet, 600+ user net
2012-08-05 20:10:51 -07:00
9279a470db fixen snoonet ssl 2012-08-06 00:05:51 -03:00
7bff15a31a Merge pull request #41 from flotwig/patch-2
fixed ban message to reflect the correct channel
2012-08-05 19:54:48 -07:00
3518486a89 added Snoonet, 600+ user net 2012-08-05 23:51:24 -03:00
74c143a8b7 fixed ban message to reflect the correct channel 2012-08-05 23:48:24 -03:00
6b383ec134 Avoid inline declarations 2012-08-01 20:12:47 +02:00
c401817d51 Load custom icons from <config>/icons 2012-08-01 19:49:12 +02:00
ea96ffc154 Fix port number for EntropyNet 2012-07-31 11:44:14 +02:00
27227d54c7 Add Windfyre to the Network List 2012-07-31 11:41:07 +02:00
ec2b68bb98 Add EntropyNet to the Network List 2012-07-31 11:38:08 +02:00
6a5c089728 Remove dead networks from the Network List 2012-07-31 11:33:15 +02:00
08a3bb537b Merge pull request #31 from Joah/master
Update src/common/servlist.c with AlphaChat IRC Network
2012-07-31 01:48:36 -07:00
0242b706e0 Use 6697 for SSL connections by default
http://blog.freenode.net/2011/02/port-6697-irc-via-tlsssl/
2012-07-31 09:20:20 +02:00
8c3cdb8b06 Update src/common/servlist.c
Added the AlphaChat IRC network (http://www.alphachat.net), a ~300 user network that runs ShadowIRCd and Atheme services with leaves in North America, Europe, Australia, and South Africa.
2012-07-30 21:44:00 -03:00
dd1d5f8e6a Add missing include 2012-07-30 18:48:45 +02:00
303038e24f Use a more appropriate icon in a more appropriate size 2012-07-30 18:45:21 +02:00
835820b2f5 Fix compilation on Red Hat (Phr33d0m) 2012-07-30 16:05:34 +02:00
39fe57d15e Merge pull request #24 from tobbi/master
Typo fixes and more translations for German (de-DE)
2012-07-29 23:39:17 -07:00
43e89281ea Several German fixes and some further translations
Typo fixes and more translations
2012-07-29 22:54:35 +03:00
a891ffe420 Merge pull request #18 from luminoso/patch-1
Update src/common/servlist.c
2012-07-29 03:57:51 -07:00
2421fbc4f2 Update src/common/servlist.c
PTlink Portuguese IRC server is dead for a few years and there is a new server for PTnet.
There is also SSL support and one ipv6-only server, but I'm not sure about the best way to add it to this list.
2012-07-27 18:11:45 +02:00
f750097617 Enable updates to 2.9.1 2012-07-27 17:06:36 +02:00
42a1ed1b8b Add info about HexChat changelog 2012-07-27 17:00:23 +02:00
1cbb226179 Update XChat to r1521 part 2 2012-07-27 11:49:11 +02:00
fdd3f3aa89 Update XChat to r1521 2012-07-27 11:47:49 +02:00
8752861b7e Remember last search pattern during sessions 2012-07-27 11:37:14 +02:00
b6e62524f4 Fix Perl interface filename in the installer, too 2012-07-27 00:35:40 +02:00
cd0ffbe8ba Fix auto-loading the Perl interface on Windows 2012-07-27 00:24:56 +02:00
9f0559ffe5 Update notes about config changes 2012-07-26 23:42:33 +02:00
94c66e935d Make FiSHLiM consistent with recent naming changes 2012-07-26 23:41:03 +02:00
52175f439a Don't hardcode path when printing error message for config dir creation 2012-07-26 22:18:38 +02:00
ec301a5a54 Auto-load user plugins and scripts from <config>/addons
On Unix leave $(libdir)/hexchat/plugins for plugin packagers, on Windows
prevent users from modifying Program Files by ignoring everything except
bundled plugins
2012-07-26 20:53:59 +02:00
7f831646bb Autoload local plugins from <config>/plugins 2012-07-26 16:19:45 +02:00
309f1d3562 Fix memory leak in lastlog 2012-07-26 08:58:00 +02:00
ead7f234e5 Initial support for lastlog -r on win32 (Richard) 2012-07-25 22:14:27 +02:00
0d36e0cd2f No idea why I put 2011 here 2012-07-24 12:53:06 +02:00
1c447889f9 This applies to all scripts/plugins, not just Perl 2012-07-24 12:52:44 +02:00
1268ec4bc3 No reason to put Windows on the bottom 2012-07-23 11:01:06 +02:00
ef9fc1bcbb Don't suggest --enable-maintainer-mode, noone's using it anyway 2012-07-23 10:54:23 +02:00
4e2d376390 Make HexChat remember minimum and maximum users set in channel list 2012-07-23 10:09:39 +02:00
fdc3ed47b8 Update list of supported Windows versions 2012-07-23 09:27:00 +02:00
157dab258e Now, really fix grep on Windows 2012-07-22 02:23:30 +02:00
22cde0e5a2 Make GREP work on Windows, regexp support isn't implemented in fe_lastlog yet 2012-07-22 02:13:36 +02:00
6533b75313 Unused sndPlaySound method for future reference 2012-07-21 23:06:04 +02:00
56afb16608 GtkFileFilter shouldn't be g_freed 2012-07-21 21:56:19 +02:00
6091c8e75e Fix error message displayed when cannot create config folder 2012-07-21 21:43:14 +02:00
bc651b0222 Add extension filter for file dialogs, specify filters and starting folder for loading plugins 2012-07-21 21:42:48 +02:00
2b3e1f46e3 Use <configdir>/scripts to (auto)load Lua/Perl/Python/Tcl scripts 2012-07-21 19:16:31 +02:00
9ea3ac9ddd Update .gitignore to include all Unix-specific files 2012-07-21 17:09:54 +02:00
d05d298bbb Get rid of yet another implicit declaration 2012-07-21 16:25:08 +02:00
9dd3942c88 Minor cosmetics for util.c too 2012-07-21 16:17:53 +02:00
92cb1dc12c Reformat the DNS plugin a bit while we're at it 2012-07-21 16:16:30 +02:00
d559401c50 Supposed fix for g_io_channel_read() deprecation 2012-07-21 16:16:00 +02:00
0e3fbb01d7 Add _AMD64_ definition for x64 builds, make Visual Studio even happier 2012-07-21 14:59:25 +02:00
2ae76fcacf Add trailing backslashes to Output and Intermediate directories, make Visual Studio happy 2012-07-21 14:46:29 +02:00
c1f332f0a2 More unused variables 2012-07-21 14:36:16 +02:00
e7f723539d Some aid for compiler warnings 2012-07-21 14:26:19 +02:00
4cae471af3 Add MS Gothic to default list of alternative fonts 2012-07-21 11:46:56 +02:00
63ae51242b Some XChat string left out 2012-07-20 22:01:21 +02:00
f15b8090b7 Eliminate some Tcl noise 2012-07-20 19:12:39 +02:00
78cc4adfed Only g_free() if we g_malloc() with strip_color() 2012-07-20 18:45:12 +02:00
1edd920362 Restructure the preferences window which in turn fixes the marker line toggle bug 2012-07-20 17:15:20 +02:00
5290c7f392 Some more rebranding 2012-07-20 15:52:33 +02:00
47d6222f1c Be consistent about caps 2012-07-20 15:50:42 +02:00
7fdcf9620e Merge pull request #9 from XhmikosR/master
more branding changes
2012-07-20 06:43:35 -07:00
27c6150ab3 Fix file version info 2012-07-20 15:41:08 +02:00
d4ce3fb240 Merge branch 'master' of https://github.com/XhmikosR/hexchat 2012-07-19 18:30:37 +03:00
f535702903 more branding changes 2012-07-19 18:30:12 +03:00
c9634793dd more branding changes 2012-07-19 18:25:49 +03:00
0d87087fce Add note about building info 2012-07-19 12:10:06 +02:00
504e4f2e66 Remove obsolete and empty files 2012-07-19 12:09:37 +02:00
397425a9aa Version bump for tarname too 2012-07-19 12:02:59 +02:00
d4eebf7424 Update Unix build instructions 2012-07-19 11:37:23 +02:00
521d60736d Oh sweet free()dom 2012-07-19 10:34:48 +02:00
ef81a24f64 Add option to retain colors in scrollback 2012-07-19 09:14:56 +02:00
89584e565a A decent WizardImage for the installer 2012-07-18 22:55:21 +02:00
1084a85d5d Rebrand the manifest file too 2012-07-18 22:27:15 +02:00
7fff475fda Rebrand HexTray and fix icon rendering for certain events 2012-07-18 22:23:09 +02:00
a251934b36 Fix dbus-libproxy confusion causing compilation to fail with dbus disabled and libproxy present 2012-07-18 21:19:11 +02:00
cb2f9f3e7b Use GTK+ file dialogs on Windows too, the Win32 dialogs are too buggy 2012-07-18 20:16:35 +02:00
b63a4ced19 Fix Checksum compilation on Windows 2012-07-18 18:48:45 +02:00
f6f1dafc27 Remove duplicates caused by manual find-n-replace in German translation 2012-07-18 16:28:02 +02:00
ad711026f5 Use hardcoded string for this one instance, otherwise it may be untranslatable for certain languages 2012-07-18 16:22:58 +02:00
d39acb7ae2 Replace hardcoded "XChat:" strings in translations 2012-07-18 16:11:16 +02:00
bc6a452c54 Don't use hardcoded string for quit window 2012-07-18 16:06:00 +02:00
a4e32b104c Update quit window string 2012-07-18 16:02:52 +02:00
cfb9f4738b Merge pull request #5 from gandaro/german-translation
Update for German translation
2012-07-18 06:54:54 -07:00
3ce307994d Add FAQ entry for migrating from XChat 2012-07-18 15:51:04 +02:00
e0c9af93a6 configure.in cosmetics 2012-07-18 15:41:01 +02:00
e690b83f4a Even more rebranding for the D-Bus plugin 2012-07-18 15:24:21 +02:00
746d9b542b Complete the rebranding of the D-Bus plugin 2012-07-18 15:18:43 +02:00
1b0c07f8ea Checksum Unix support and configure.in cosmetics 2012-07-18 14:50:58 +02:00
d3effc806f Improve the logic for FiSHLiM checks 2012-07-18 14:03:15 +02:00
8aaff85e70 Prepare FiSHLiM to use the plugin config API 2012-07-18 11:17:21 +02:00
a4052aff32 Add some Unix-specific files for .gitignore, more to come later 2012-07-18 10:51:39 +02:00
1d3c6d672e Add make support for FiSHLiM on Unix 2012-07-18 10:51:22 +02:00
f6eee67ae1 Update for German translation 2012-07-17 23:08:08 +02:00
0cf80ecb32 For private messages, use message icon instead of hightlight icon 2012-07-17 20:45:51 +02:00
8ef97f24e0 Update Plugin-Tray icons (TingPing) 2012-07-17 20:45:11 +02:00
2044a9568c Add make support for Do At on Unix 2012-07-17 19:47:19 +02:00
e5f4c4d217 Add make support for SASL on Unix 2012-07-17 19:19:48 +02:00
6d55ce363b Unix compatibility for SASL 2012-07-17 18:37:29 +02:00
e47235efe3 Remove tab_xp as it was an xchat-windows thing 2012-07-16 22:56:28 +02:00
d8225f79f6 Update logos thanks to TingPing, now only WizardImage is left 2012-07-16 22:53:28 +02:00
e222ff56e2 Use highest compression available, it actually speeds up compression and slightly reduces executable size, no reason not to use it 2012-07-16 00:52:55 +02:00
eecc005901 Merge pull request #4 from cremno/master
Unescaped backslash in mutex object name
2012-07-15 15:39:27 -07:00
8f4399f900 escaped an unescaped backslash 2012-07-15 23:42:41 +02:00
f78acf5eda Another supposed fix for tray restoration 2012-07-15 14:54:44 +02:00
74ad736626 Update version and revision info 2012-07-15 12:32:45 +02:00
bf98464d2d Windows doesn't seem to like the hexchat mutex, stops working after some time, let's use the old, working one (might be a Win8 bug though) 2012-07-15 12:29:17 +02:00
b20e8feca2 Add these back, removed with XChat r1516 by the GTK check cleanup 2012-07-15 11:07:16 +02:00
7f675ca254 Update a few remaining XChat strings in HexTray 2012-07-14 23:53:24 +02:00
ad65235bbe Add copyright while we're at it 2012-07-14 20:56:00 +02:00
1e1501fdcc Update XChat to r1520 2012-07-14 20:54:00 +02:00
095d32556c Update XChat to r1519 2012-07-14 20:52:41 +02:00
11b73bc8a7 Update XChat to r1517 2012-07-14 20:50:00 +02:00
c80cb47e5c Update XChat to r1516 2012-07-14 20:46:42 +02:00
a5cc3b15d7 Ultra compression slows down compilation but doesn't really reduce the size, isn't worth it 2012-07-14 20:24:07 +02:00
98dd5b89cb Update script/plugin paths in README 2012-07-14 20:23:11 +02:00
17e6e2ada4 This is breaking page rendering 2012-07-14 20:23:00 +02:00
37bd8287c7 Fix EOLs screwed up by GitHub client actually 2012-07-14 20:15:53 +02:00
87074105be Merge pull request #1 from XhmikosR/master
Minor changes, merge as a whole for convenience, update it slightly later
2012-07-14 11:03:38 -07:00
016ebd8899 Fix EOLs screwed up by GitHub 2012-07-14 19:48:30 +02:00
5749eee43c Merge pull request #2 from TingPing/master
Update scripting interfaces to use correct libdir
2012-07-14 10:24:35 -07:00
8d643d376f Update master 2012-07-14 09:42:53 -03:00
a19fc013a5 fixed plugins using correct libdir 2012-07-14 02:22:24 -05:00
34bae3ef6d remove a few more *.user files 2012-07-14 06:14:27 +03:00
3a06b7779a win32/nls/nls.vcxproj: get rid of unused elements 2012-07-14 06:10:37 +03:00
a6729b2266 remove trailing space 2012-07-14 06:06:48 +03:00
d26c9c23b8 installer: use lzma2/ultra compression 2012-07-14 06:06:37 +03:00
1d0c2943c4 more XChat to HexChat renaming 2012-07-14 06:04:45 +03:00
1fae4ef09f get rid of *.user files and ignore them 2012-07-14 06:03:42 +03:00
717 changed files with 281514 additions and 236740 deletions

19
.editorconfig Normal file
View File

@ -0,0 +1,19 @@
# EditorConfig is awesome: http://EditorConfig.org
# top-most EditorConfig file
root = true
[*.{c,cpp,h,hpp,m}]
indent_style = tab
indent_size = 4
end_of_line = lf
[*.cs]
indent_style = space
indent_size = 4
end_of_line = lf
[{meson.build,meson_options.txt}]
indent_size = 2
indent_style = space
insert_final_newline = true

17
.github/workflows/flatpak-build.yml vendored Normal file
View File

@ -0,0 +1,17 @@
name: Flatpak Build
on: [push, pull_request]
jobs:
flatpak_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

41
.github/workflows/msys-build.yml vendored Normal file
View File

@ -0,0 +1,41 @@
name: MSYS2 Build
on: [push, pull_request]
jobs:
msys2_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-gtk-update-icon-cache
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
.github/workflows/ubuntu-build.yml vendored Normal file
View File

@ -0,0 +1,25 @@
name: Ubuntu Build
on: [push, pull_request]
jobs:
ubuntu_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 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
.github/workflows/windows-build.yml vendored Normal file
View File

@ -0,0 +1,72 @@
name: Windows Build
on: [push, pull_request]
jobs:
windows_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.8" -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.8" -Name "${{ matrix.platform }}" -ItemType "SymbolicLink" -Value "C:/hostedtoolcache/windows/Python/3.8.10/${{ matrix.arch }}"
C:/hostedtoolcache/windows/Python/3.8.10/${{ 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

40
.gitignore vendored
View File

@ -1,11 +1,29 @@
# git ignore file
plugins/wmpa/wmpa_h.h
plugins/wmpa/wmpa_i.c
src/pixmaps/inline_pngs.h
src/htm/obj/*
win32/build/*
win32/ipch/*
win32/hexchat.opensdf
win32/hexchat.sdf
win32/hexchat.suo
resource.h
/build
builddir/
doxygen*.tmp
html/
*.patch
tags
# Win32 generated files
plugins/wmpa/wmpa_h.h
plugins/wmpa/wmpa_i.c
src/htm/obj/*
win32/ipch/*
win32/ext/perl/perl-x86-cache
win32/ext/perl/perl-x86-SetupFiles
win32/ext/perl/perl-x64-cache
win32/ext/perl/perl-x64-SetupFiles
win32/installer/hexchat.iss
resource.h
*.opensdf
*.sdf
*.suo
*.user
*.exe
# OSX
osx/HexChat.app
osx/.HexChat.app
*.zip
*.dmg
*.VC.db
*.VC.opendb

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "flatpak/shared-modules"]
path = flatpak/shared-modules
url = https://github.com/flathub/shared-modules.git

5
.lgtm.yml Normal file
View File

@ -0,0 +1,5 @@
extraction:
cpp:
prepare:
packages:
- python3-cffi

10
.mailmap Normal file
View File

@ -0,0 +1,10 @@
Berke Viktor <github.bviktor@outlook.com> <berkeviktor@aol.com>
Berke Viktor <github.bviktor@outlook.com> <bviktor@hexchat.org>
Berke Viktor <github.bviktor@outlook.com> <bviktor@outlook.com>
Berke Viktor <github.bviktor@outlook.com> berkeviktor@aol.com
Patrick Griffis <tingping@tingping.se> TingPing <tingping@fedoraproject.org>
Patrick Griffis <tingping@tingping.se> TingPing <tingping@tingping.se>
Patrick Griffis <tingping@tingping.se> TingPing <tngpng@gmail.com>
Patrick Griffis <tingping@tingping.se> TingPing <TingPing@users.noreply.github.com>
Arnav Singh <arnavion@gmail.com> Arnavion
Eustachy Kapusta <Eustachy.kapusta@gmail.com> tomek

8
.tx/config Normal file
View File

@ -0,0 +1,8 @@
[main]
host = https://www.transifex.com
[hexchat.main]
file_filter = po/<lang>.po
source_file = po/hexchat.pot
source_lang = en
type = PO

65
.tx/howto.md Normal file
View File

@ -0,0 +1,65 @@
Go to the [Transifex client documentation](http://help.transifex.com/features/client/index.html) for more info.
## Initializing a new project on Transifex
<pre>
tx init
tx set --auto-local -r hexchat.main "po\<lang>.po" --source-lang en --source-file po\hexchat.pot --execute
</pre>
Append `type = PO` to _.tx\config_.
Push the resources to Transifex:
<pre>
tx push --source --translation
</pre>
## Updating online translations with the template
Regenerate the source file ( _hexchat.pot_ ) on a Unix machine:
<pre>
rm po/hexchat.pot && ./autogen.sh && ./configure --enable-nls && cd src/common && make textevents.h && cd../.. && make
</pre>
Push the updated source file to Transifex (this automatically updates all translation files):
<pre>
tx push --source
</pre>
## Updating the repo with online translations
Update local copy with Transifex updates:
<pre>
tx pull
</pre>
Update GitHub repo:
<pre>git add po/
git commit
git push
</pre>
## Updating just one translation with local changes
<pre>
tx push --translation --language xy
</pre>
Where _xy_ is the language code.
## Forcing translation updates
<pre>
tx pull --force
</pre>
This might be required when the repo is freshly cloned and thus timestamps are newer than on Transifex.

View File

View File

@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

View File

@ -1,136 +0,0 @@
{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 Courier New;}}
{\*\generator Msftedit 5.41.21.2509;}\viewkind4\uc1\pard\lang1033\f0\fs20 GNU GENERAL PUBLIC LICENSE\par
\par
Version 2, June 1991\par
\par
Copyright (C) 1989, 1991 Free Software Foundation, Inc. \par
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\par
\par
Everyone is permitted to copy and distribute verbatim copies\par
of this license document, but changing it is not allowed.\par
\par
Preamble\par
\par
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.\par
\par
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.\par
\par
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.\par
\par
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.\par
\par
We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.\par
\par
Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.\par
\par
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.\par
\par
The precise terms and conditions for copying, distribution and modification follow.\par
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\par
\par
0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".\par
\par
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.\par
\par
1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.\par
\par
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.\par
\par
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:\par
\par
a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. \par
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. \par
c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) \par
\par
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.\par
\par
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.\par
\par
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.\par
\par
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:\par
\par
a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, \par
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, \par
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) \par
\par
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.\par
\par
If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.\par
\par
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.\par
\par
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.\par
\par
6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.\par
\par
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.\par
\par
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.\par
\par
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.\par
\par
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.\par
\par
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.\par
\par
9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.\par
\par
Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.\par
\par
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.\par
\par
NO WARRANTY\par
\par
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\par
\par
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\par
END OF TERMS AND CONDITIONS\par
How to Apply These Terms to Your New Programs\par
\par
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.\par
\par
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.\par
\par
one line to give the program's name and an idea of what it does.\par
Copyright (C) yyyy name of author\par
\par
This program is free software; you can redistribute it and/or\par
modify it under the terms of the GNU General Public License\par
as published by the Free Software Foundation; either version 2\par
of the License, or (at your option) any later version.\par
\par
This program is distributed in the hope that it will be useful,\par
but WITHOUT ANY WARRANTY; without even the implied warranty of\par
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\par
GNU General Public License for more details.\par
\par
You should have received a copy of the GNU General Public License\par
along with this program; if not, write to the Free Software\par
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\par
\par
Also add information on how to contact you by electronic and paper mail.\par
\par
If the program is interactive, make it output a short notice like this when it starts in an interactive mode:\par
\par
Gnomovision version 69, Copyright (C) year name of author\par
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details\par
type `show w'. This is free software, and you are welcome\par
to redistribute it under certain conditions; type `show c' \par
for details.\par
\par
The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.\par
\par
You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:\par
\par
Yoyodyne, Inc., hereby disclaims all copyright\par
interest in the program `Gnomovision'\par
(which makes passes at compilers) written \par
by James Hacker.\par
\par
signature of Ty Coon, 1 April 1989\par
Ty Coon, President of Vice\par
\par
This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. \par
}

2265
ChangeLog

File diff suppressed because it is too large Load Diff

1904
Doxyfile Normal file

File diff suppressed because it is too large Load Diff

51
HACKING
View File

@ -1,51 +0,0 @@
Just some tips if you're going to help with xchat code (patches etc):
* Use tabs, not spaces, to indent code.
* Use a tab size of 3 (most editors will let you choose this).
Type :set ts=3 in vim/gvim.
* Try to stick to the same consistant coding style:
void
routine (void)
{
if (function (a, b, c))
{
x = a + 1;
}
}
(vertically aligned braces, a space after if, while, functions etc).
* Don't use "//" C++ style comments, some compilers don't like them.
* When opening a file with unix level functions (open, read/write, close)
as opposed to the C-level functions (fopen, fwrite/fread, fclose), use
the OFLAGS macro. This makes sure it'll work on Win32 aswell as unix e.g:
fh = open ("file", OFLAGS | O_RDONLY);
* Use closesocket() for sockets, and close() for normal files.
* Don't read() from sockets, instead use recv().
* Please provide unified format diffs (run diff -u).
* Call your patch something more meaningfull than xchat.diff (I get a
million of these files!).
* To make a really nice and clean patch, do something like this:
Have two directories, unpacked from the original archive:
xchat-2.0.0/
xchat-2.0.0p1/
Then edit/compile the xchat-2.0.0p1 directory. When you're done, make
a patch with:
cd xchat-2.0.0p1
make distclean
cd ..
diff -urN xchat-2.0.0 xchat-2.0.0p1 > xchat-something.diff
If using nmake (Windows) replace "make distclean" with "nmake -f makefile.msc clean"

49
INSTALL
View File

@ -1,49 +0,0 @@
X-Chat Requirements:
~~~~~~~~~~~~~~~~~~~~
- GTK 2.6+ (it comes with your Linux)
Optional:
- Perl (http://www.perl.org)
- Python (http://www.python.org)
- TCL (http://tcl.activestate.com)
- OpenSSL (http://www.openssl.org)
X-Chat Compiling and Installation:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Type this:
./configure
make
Become root and type:
make install
Other Options
~~~~~~~~~~~~~
To get a full list of compile options, type:
./configure --help
If you do not have GNU Gettext installed, instead use:
./configure --disable-nls
If you want to disable Perl you can do:
./configure --disable-perl
If you want to install a smaller stripped binary (without debug) do:
make install-strip

View File

@ -1,117 +0,0 @@
COMPILING ON WIN32
~~~~~~~~~~~~~~~~~~
It is not easy! Be warned! You need either one of these compilers:
* Mingw (http://www.mingw.org)
* MS Visual C
Note: This source code is meant for Linux/Unix like systems. Compiling this for
Windows will produce a below-par quality product. The official XChat for Windows
is not built with this unix source code.
Getting GTK
~~~~~~~~~~~
You also need GTK+ 2.10 for win32. Altough the GTK packages from the GIMP
website are larger and harder to install they work very well.
1) Get the following packages from:
http://www.gimp.org/~tml/gimp/win32/downloads.html
- gtk+-2.4.3.tar.gz
- gtk+-dev-2.4.3.tar.gz
- dirent.zip
- gettext-runtime-0.13.1.zip
- gettext-tools-0.13.1.zip
- atk-1.6.0.zip
- atk-dev-1.6.0.zip
- pango-1.4.0.zip
- pango-dev-1.4.0.zip
- libpng (http://gnuwin32.sourceforge.net/packages/libpng.htm) Binaries & Developer files.
- GNU libiconv (Not source files)
- glib-2.4.2.zip
- glib-dev-2.4.2.zip
- pkgconfig-0.15.zip
- Zlib121-dll.zip
2) Extract all files to a suitable place such as c:\devtools
3) Windows 2000, XP & 2003 users:
- Start->(Settings->)Control Panel->System Applet
- Advanced Tab->Environment Variables
- Under "User variables for <user>" append ";C:\devtools" to the end of the PATH Variable
- Click Ok twice and close the Control Panel
For Windows 9x users your basicly on your own for now.
Mingw
~~~~~
I havn't tried this yet, but ./configure --disable-xlib would be a start.
MS Visual C
~~~~~~~~~~~
1) Edit src\makeinc.msc
You need to change the variables GLIB, GTK and LIBS to point
the correct paths for your harddrive. Use the program pkg-config
to find this information.
a) paste the output of `pkg-config glib-2.0 --msvc-syntax --cflags`
to the GLIB = ... line.
b) paste the output of `pkg-config gtk+-2.0 --msvc-syntax --cflags`
to the GTK = ... line.
c) paste the output of `pkg-config gtk+-2.0 --msvc-syntax --libs`
to the LIBS = ... line.
2) In MSVC's includes directory, copy io.h to unistd.h.
MS VC++ 6
~~~~~~~~~
3) Download Platform SDK from http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
(you only need Core SDK) - ~200 MB Download (Be warned).
4) Open the build enviroment.
a) If your planning on developing modifications to the xchat code go:
Start->Programs->Microsoft Platform SDK...->Open Build Enviroment...->(Choose OS)->... (Debug)
b) If your compiling just to use xchat and wish to no recieve debug messages:
Start->Programs->Microsoft Platform SDK...->Open Build Enviroment...->(Choose OS)->... (Retail)
5) Change directory into where you have download the xchat source to and type this:
cd src
nmake -f makefile.msc clean
nmake -f makefile.msc
6) Copy fe-gtk\xchat.exe to another place.
MS VC++ 7 (.NET)
~~~~~~~~~~~~~~~~
3) Open the Visual Studio .NET Command Prompt
4) Change directory into where you have download the xchat source to and type this:
cd src
nmake -f makefile.msc clean
nmake -f makefile.msc
5) Copy fe-gtk\xchat.exe to another place.
Common problems:
~~~~~~~~~~~~~~~~
* gdk-pixbuf-csource must be in PATH.
FIX: See step 3 for setting up GTK
* You might need to install dirent.zip manually.
FIX: Copy C:\devtools\include\dirent.h to C:\devtools\include\glib-2.0\dirent.h
* Include path to libintl.h should be in GLIB= (makeinc.msc).
FIX: Copy C:\devtools\include\libintl.h to C:\devtools\include\glib-2.0\libintl.h

View File

@ -1,12 +0,0 @@
## Process this file with automake to produce Makefile.in
SUBDIRS = po intl src plugins
EXTRA_DIST = autogen.sh HACKING INSTALL.w32 faq.html hexchat.png \
hexchat.desktop hexchat.spec hexchat.ico
icon_DATA = hexchat.png
icondir = $(datadir)/pixmaps
util_DATA = hexchat.desktop
utildir = $(datadir)/applications

103
README
View File

@ -1,103 +0,0 @@
X-Chat README
~~~~~~~~~~~~~
X-Chat ("xchat") Copyright (c) 1998-2010 By Peter Zelezny.
This program is released under the GPL v2 with the additional exemption
that compiling, linking, and/or using OpenSSL is allowed. You may
provide binary packages linked to the OpenSSL libraries, provided that
all other requirements of the GPL are met.
See file COPYING for details.
What is it?
~~~~~~~~~~~
X-Chat is an IRC client for UNIX operating systems. I.R.C. is Internet
Relay Chat, see http://irchelp.org for more information about IRC in
general. Xchat runs on most BSD and POSIX compliant operating systems.
Requirements:
~~~~~~~~~~~~~
* GTK+ 2.10 (this is available at http://www.gtk.org).
X-Chat is known to work on, at least:
* Linux
* FreeBSD
* OpenBSD
* NetBSD
* Solaris
* AIX
* IRIX
* DEC/Compaq Tru64 UNIX
* HP-UX 10.20 and 11
* MacOS X
* Windows XP/2000/Vista/7
Notes for packagers:
~~~~~~~~~~~~~~~~~~~~
If you need your packages to work on i386, you don't need to compile with
--disable-mmx, because it's also checked at run-time.
Python Scripts:
~~~~~~~~~~~~~~~
Scripts for 1.8.x are not compatible, and a brand new interface has be
written. Documentation can be found here: http://xchat.org/docs/.
Consider using the Python interface for your scripts, it's a very nice
API, allows for loading/unloading individual scripts, and gives you
almost all the features of the C-Plugin API.
Perl Scripts:
~~~~~~~~~~~~~
Scripts for 1.8.x are compatible with the following exceptions:
* IRC::command will not interpret %C, %B, %U etc.
* user_list and user_list_short:
If a user has both op and voice, only the op flag will be 1.
* add_user_list/sub_user_list/clear_user_list
These functions do nothing.
* notify_list
Not implemented. Always returns an empty list.
* server_list
Lists servers that are not connected aswell.
* Some print events may have new names and some were added.
* Text printed by scripts must now be UTF8.
* Text passed to scripts (via add_message_handler) will be encoded in UTF8.
Autoloading Perl Scripts and Plugins
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* X-Chat automatically loads, at startup:
~/.xchat2/*.pl Perl scripts
~/.xchat2/*.py Python scripts
~/.xchat2/*.so Plugins
$(libdir)/xchat/plugins/*.so plugins
(this usually translates to /usr/lib/xchat/plugins/*.so)
Control Codes:
~~~~~~~~~~~~~~
%% - A single percentage sign
%C - Control-C (mIRC color code)
%B - Bold Text
%U - Underline Text
%R - Reverse Text
%O - Reset all Text attributes
%XXX - ASCII XXX (where XXX is a decimal 3 digit number)
(Eg: %007 sends a BEEP)
%Cforeground,background will produce a color code, eg: %C03,10
These are now disabled by default (see Settings > Prefs > Input Box).
Instead you can insert the real codes via ctrl-k, ctrl-b and ctrl-o.

View File

@ -1,40 +0,0 @@
dnl AS_AC_EXPAND(VAR, CONFIGURE_VAR)
dnl
dnl example
dnl AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
dnl will set SYSCONFDIR to /usr/local/etc if prefix=/usr/local
AC_DEFUN([AS_AC_EXPAND],
[
EXP_VAR=[$1]
FROM_VAR=[$2]
dnl first expand prefix and exec_prefix if necessary
prefix_save=$prefix
exec_prefix_save=$exec_prefix
dnl if no prefix given, then use /usr/local, the default prefix
if test "x$prefix" = "xNONE"; then
prefix=$ac_default_prefix
fi
dnl if no exec_prefix given, then use prefix
if test "x$exec_prefix" = "xNONE"; then
exec_prefix=$prefix
fi
full_var="$FROM_VAR"
dnl loop until it doesn't change anymore
while true; do
new_full_var="`eval echo $full_var`"
if test "x$new_full_var"="x$full_var"; then break; fi
full_var=$new_full_var
done
dnl clean up
full_var=$new_full_var
AC_SUBST([$1], "$full_var")
dnl restore prefix and exec_prefix
prefix=$prefix_save
exec_prefix=$exec_prefix_save
])

View File

@ -1,113 +0,0 @@
#!/bin/bash
have_automake=false
if automake --version < /dev/null > /dev/null 2>&1 ; then
automake_version=`automake --version | grep 'automake (GNU automake)' | sed 's/^[^0-9]*\(.*\)/\1/'`
case $automake_version in
1.2*|1.3*|1.4|1.4*|1.5*|1.6*|1.7*|1.8*)
;;
*)
have_automake=true
;;
esac
fi
if $have_automake ; then
AUTOMAKE="automake"
ACLOCAL="aclocal"
else
if automake-1.9 --version < /dev/null > /dev/null 2>&1 ; then
AUTOMAKE="automake-1.9"
ACLOCAL="aclocal-1.9"
else
echo "automake missing or too old. This requires atleast automake 1.9"
exit 1
fi
fi
# ------ START GETTEXT ------
echo searching for GNU gettext intl directory...
dirs="/usr/share /usr/local/share /opt/share /usr /usr/local /opt /usr/gnu/share /opt/local /opt/local/share"
found=0
for try in $dirs; do
echo -n " -> $try/gettext/intl... "
if test -d $try/gettext/intl; then
echo found it
found=1
break
fi
echo no
done
if test "$found" != 1; then
echo ERROR: Cannot find gettext/intl directory.
echo ERROR: Install GNU gettext in /usr or /usr/local prefix.
exit 7
fi;
echo copying gettext intl files...
if test -f $try/gettext/mkinstalldirs; then
ln -s $try/gettext/mkinstalldirs mkinstalldirs
fi
intldir="$try/gettext/intl"
if test ! -d intl; then
mkdir intl
fi
olddir=`pwd`
cd $intldir
for file in *; do
if test $file != COPYING.LIB-2.0 && test $file != COPYING.LIB-2.1; then
rm -f $olddir/intl/$file
cp $intldir/$file $olddir/intl/
fi
done
cp -f $try/gettext/po/Makefile.in.in $olddir/po/
cd $olddir
if test -f intl/plural.c; then
sleep 2
touch intl/plural.c
fi
# ------ END GETTEXT ------
echo running $ACLOCAL...
$ACLOCAL $ACLOCAL_FLAGS
if test "$?" != "0"; then
echo aclocal failed, stopping.
exit 2
fi
echo running libtoolize...
libtoolize --force
if test "$?" != "0"; then
echo libtoolize failed, stopping.
exit 3
fi
echo running autoheader...
autoheader
if test "$?" != "0"; then
echo autoheader failed, stopping.
exit 4
fi
echo running $AUTOMAKE...
$AUTOMAKE -a --foreign
if test "$?" != "0"; then
echo automake failed, stopping.
exit 5
fi
echo running autoconf...
autoconf
if test "$?" != "0"; then
echo autoconf failed, stopping.
exit 6
fi
echo if no errors occured, run ./configure --enable-maintainer-mode
exit 0
#autogen.sh generates:
# aclocal.m4 Makefile.in config.guess config.sub ltmain.sh
# configure install-sh missing mkinstalldirs depcomp
#
#configure generates:
# config.status libtool Makefile.in

View File

@ -1,19 +0,0 @@
#define LOCALEDIR "./locale"
#define ENABLE_NLS
#define USE_GMODULE
#define USE_PLUGIN
#define USE_OPENSSL
#define USE_LIBSEXY
#define USE_IPV6
#define HAVE_ISO_CODES
#define PACKAGE_NAME "hexchat"
#define PACKAGE_VERSION "2.9.0"
#define XCHAT_REVISION "1515"
#define HEXCHATLIBDIR "."
#define HEXCHATSHAREDIR "."
#define OLD_PERL
#define GETTEXT_PACKAGE "hexchat"
#define PACKAGE_TARNAME "hexchat-2.9.0"
#ifndef USE_IPV6
#define socklen_t int
#endif

View File

@ -1,571 +0,0 @@
#! /bin/sh
# Output a system dependent set of variables, describing how to set the
# run time search path of shared libraries in an executable.
#
# Copyright 1996-2005 Free Software Foundation, Inc.
# Taken from GNU libtool, 2001
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# The first argument passed to this file is the canonical host specification,
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
# should be set by the caller.
#
# The set of defined variables is at the end of this script.
# Known limitations:
# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
# than 256 bytes, otherwise the compiler driver will dump core. The only
# known workaround is to choose shorter directory names for the build
# directory and/or the installation directory.
# All known linkers require a `.a' archive for static linking (except M$VC,
# which needs '.lib').
libext=a
shrext=.so
host="$1"
host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
cc_basename=`echo "$CC" | sed -e 's%^.*/%%'`
# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
wl=
if test "$GCC" = yes; then
wl='-Wl,'
else
case "$host_os" in
aix*)
wl='-Wl,'
;;
darwin*)
case "$cc_basename" in
xlc*)
wl='-Wl,'
;;
esac
;;
mingw* | pw32* | os2*)
;;
hpux9* | hpux10* | hpux11*)
wl='-Wl,'
;;
irix5* | irix6* | nonstopux*)
wl='-Wl,'
;;
newsos6)
;;
linux*)
case $cc_basename in
icc* | ecc*)
wl='-Wl,'
;;
pgcc | pgf77 | pgf90)
wl='-Wl,'
;;
ccc*)
wl='-Wl,'
;;
como)
wl='-lopt='
;;
esac
;;
osf3* | osf4* | osf5*)
wl='-Wl,'
;;
sco3.2v5*)
;;
solaris*)
wl='-Wl,'
;;
sunos4*)
wl='-Qoption ld '
;;
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
wl='-Wl,'
;;
sysv4*MP*)
;;
unicos*)
wl='-Wl,'
;;
uts4*)
;;
esac
fi
# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
hardcode_libdir_flag_spec=
hardcode_libdir_separator=
hardcode_direct=no
hardcode_minus_L=no
case "$host_os" in
cygwin* | mingw* | pw32*)
# FIXME: the MSVC++ port hasn't been tested in a loooong time
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
if test "$GCC" != yes; then
with_gnu_ld=no
fi
;;
openbsd*)
with_gnu_ld=no
;;
esac
ld_shlibs=yes
if test "$with_gnu_ld" = yes; then
case "$host_os" in
aix3* | aix4* | aix5*)
# On AIX/PPC, the GNU linker is very broken
if test "$host_cpu" != ia64; then
ld_shlibs=no
fi
;;
amigaos*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
# Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
# that the semantics of dynamic libraries on AmigaOS, at least up
# to version 4, is to share data among multiple programs linked
# with the same dynamic library. Since this doesn't match the
# behavior of shared libraries on other platforms, we cannot use
# them.
ld_shlibs=no
;;
beos*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
cygwin* | mingw* | pw32*)
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
hardcode_libdir_flag_spec='-L$libdir'
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
netbsd*)
;;
solaris* | sysv5*)
if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
ld_shlibs=no
elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
sunos4*)
hardcode_direct=yes
;;
linux*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
esac
if test "$ld_shlibs" = yes; then
# Unlike libtool, we use -rpath here, not --rpath, since the documented
# option of GNU ld is called -rpath, not --rpath.
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
fi
else
case "$host_os" in
aix3*)
# Note: this linker hardcodes the directories in LIBPATH if there
# are no directories specified by -L.
hardcode_minus_L=yes
if test "$GCC" = yes; then
# Neither direct hardcoding nor static linking is supported with a
# broken collect2.
hardcode_direct=unsupported
fi
;;
aix4* | aix5*)
if test "$host_cpu" = ia64; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
aix_use_runtimelinking=no
else
aix_use_runtimelinking=no
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
case $host_os in aix4.[23]|aix4.[23].*|aix5*)
for ld_flag in $LDFLAGS; do
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
aix_use_runtimelinking=yes
break
fi
done
esac
fi
hardcode_direct=yes
hardcode_libdir_separator=':'
if test "$GCC" = yes; then
case $host_os in aix4.[012]|aix4.[012].*)
collect2name=`${CC} -print-prog-name=collect2`
if test -f "$collect2name" && \
strings "$collect2name" | grep resolve_lib_name >/dev/null
then
# We have reworked collect2
hardcode_direct=yes
else
# We have old collect2
hardcode_direct=unsupported
hardcode_minus_L=yes
hardcode_libdir_flag_spec='-L$libdir'
hardcode_libdir_separator=
fi
esac
fi
# Begin _LT_AC_SYS_LIBPATH_AIX.
echo 'int main () { return 0; }' > conftest.c
${CC} ${LDFLAGS} conftest.c -o conftest
aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
}'`
if test -z "$aix_libpath"; then
aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
}'`
fi
if test -z "$aix_libpath"; then
aix_libpath="/usr/lib:/lib"
fi
rm -f conftest.c conftest
# End _LT_AC_SYS_LIBPATH_AIX.
if test "$aix_use_runtimelinking" = yes; then
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
else
if test "$host_cpu" = ia64; then
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
else
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
fi
fi
;;
amigaos*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
# see comment about different semantics on the GNU ld section
ld_shlibs=no
;;
bsdi[45]*)
;;
cygwin* | mingw* | pw32*)
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
hardcode_libdir_flag_spec=' '
libext=lib
;;
darwin* | rhapsody*)
hardcode_direct=no
if test "$GCC" = yes ; then
:
else
case "$cc_basename" in
xlc*)
;;
*)
ld_shlibs=no
;;
esac
fi
;;
dgux*)
hardcode_libdir_flag_spec='-L$libdir'
;;
freebsd1*)
ld_shlibs=no
;;
freebsd2.2*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
freebsd2*)
hardcode_direct=yes
hardcode_minus_L=yes
;;
freebsd* | kfreebsd*-gnu | dragonfly*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
hpux9*)
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
hardcode_libdir_separator=:
hardcode_direct=yes
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
;;
hpux10* | hpux11*)
if test "$with_gnu_ld" = no; then
case "$host_cpu" in
hppa*64*)
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
hardcode_libdir_separator=:
hardcode_direct=no
;;
ia64*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_direct=no
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
;;
*)
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
hardcode_libdir_separator=:
hardcode_direct=yes
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
;;
esac
fi
;;
irix5* | irix6* | nonstopux*)
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
netbsd*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
newsos6)
hardcode_direct=yes
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
openbsd*)
hardcode_direct=yes
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
else
case "$host_os" in
openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
hardcode_libdir_flag_spec='-R$libdir'
;;
*)
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
;;
esac
fi
;;
os2*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
;;
osf3*)
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
osf4* | osf5*)
if test "$GCC" = yes; then
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
else
# Both cc and cxx compiler support -rpath directly
hardcode_libdir_flag_spec='-rpath $libdir'
fi
hardcode_libdir_separator=:
;;
sco3.2v5*)
;;
solaris*)
hardcode_libdir_flag_spec='-R$libdir'
;;
sunos4*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_direct=yes
hardcode_minus_L=yes
;;
sysv4)
case $host_vendor in
sni)
hardcode_direct=yes # is this really true???
;;
siemens)
hardcode_direct=no
;;
motorola)
hardcode_direct=no #Motorola manual says yes, but my tests say they lie
;;
esac
;;
sysv4.3*)
;;
sysv4*MP*)
if test -d /usr/nec; then
ld_shlibs=yes
fi
;;
sysv4.2uw2*)
hardcode_direct=yes
hardcode_minus_L=no
;;
sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
;;
sysv5*)
hardcode_libdir_flag_spec=
;;
uts4*)
hardcode_libdir_flag_spec='-L$libdir'
;;
*)
ld_shlibs=no
;;
esac
fi
# Check dynamic linker characteristics
# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
libname_spec='lib$name'
case "$host_os" in
aix3*)
;;
aix4* | aix5*)
;;
amigaos*)
;;
beos*)
;;
bsdi[45]*)
;;
cygwin* | mingw* | pw32*)
shrext=.dll
;;
darwin* | rhapsody*)
shrext=.dylib
;;
dgux*)
;;
freebsd1*)
;;
kfreebsd*-gnu)
;;
freebsd*)
;;
gnu*)
;;
hpux9* | hpux10* | hpux11*)
case "$host_cpu" in
ia64*)
shrext=.so
;;
hppa*64*)
shrext=.sl
;;
*)
shrext=.sl
;;
esac
;;
irix5* | irix6* | nonstopux*)
case "$host_os" in
irix5* | nonstopux*)
libsuff= shlibsuff=
;;
*)
case $LD in
*-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
*-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
*-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
*) libsuff= shlibsuff= ;;
esac
;;
esac
;;
linux*oldld* | linux*aout* | linux*coff*)
;;
linux*)
;;
knetbsd*-gnu)
;;
netbsd*)
;;
newsos6)
;;
nto-qnx*)
;;
openbsd*)
;;
os2*)
libname_spec='$name'
shrext=.dll
;;
osf3* | osf4* | osf5*)
;;
sco3.2v5*)
;;
solaris*)
;;
sunos4*)
;;
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
;;
sysv4*MP*)
;;
uts4*)
;;
esac
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
# How to pass a linker flag through the compiler.
wl="$escaped_wl"
# Static library suffix (normally "a").
libext="$libext"
# Shared library suffix (normally "so").
shlibext="$shlibext"
# Flag to hardcode \$libdir into a binary during linking.
# This must work even if \$libdir does not exist.
hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
# Whether we need a single -rpath flag with a separated argument.
hardcode_libdir_separator="$hardcode_libdir_separator"
# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
# resulting binary.
hardcode_direct="$hardcode_direct"
# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
# resulting binary.
hardcode_minus_L="$hardcode_minus_L"
EOF

View File

@ -1,876 +0,0 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT([HexChat],[2.9.0],[http://www.hexchat.org/],[hexchat])
AC_PREREQ([2.59])
AC_COPYRIGHT([Copyright (C) 1998-2010 Peter Zelezny])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([configure.in])
AM_INIT_AUTOMAKE([1.9 dist-bzip2 subdir-objects no-define])
AM_MAINTAINER_MODE
AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_CPP
AM_PROG_AS
AM_DISABLE_STATIC
AC_PROG_LIBTOOL
dnl -----------------------------------------------------------
dnl Language Support
dnl -----------------------------------------------------------
GETTEXT_PACKAGE=hexchat
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Gettext package name])
ALL_LINGUAS="am az be bg ca cs de el en_GB es et fi fr gl hi hu it ja kn ko lt lv mk ms nb nl no pa pl pt pt_BR ru sk sl sq sr sv th uk vi wa zh_CN zh_TW"
AM_GNU_GETTEXT
dnl displaced from acconfig.h
AH_VERBATIM([OLD_PERL],[#undef OLD_PERL])
AH_VERBATIM([PREFIX],[#undef PREFIX])
AH_VERBATIM([HEXCHATLIBDIR],[#undef HEXCHATLIBDIR])
AH_VERBATIM([HEXCHATSHAREDIR],[#undef HEXCHATSHAREDIR])
AH_VERBATIM([SOCKS],[#undef SOCKS])
AH_VERBATIM([USE_MSPROXY],[#undef USE_MSPROXY])
AH_VERBATIM([USE_LIBPROXY],[#undef USE_LIBPROXY])
dnl AH_VERBATIM([USE_GNOME],[#undef USE_GNOME])
AH_VERBATIM([USE_SHM],[#undef USE_SHM])
AH_VERBATIM([USE_GTKSPELL],[#undef USE_GTKSPELL])
AH_VERBATIM([USE_LIBSEXY],[#undef USE_LIBSEXY])
AH_VERBATIM([HAVE_ISO_CODES],[#undef HAVE_ISO_CODES])
AH_VERBATIM([USE_LIBNOTIFY],[#undef USE_LIBNOTIFY])
AH_VERBATIM([USE_IPV6],[#undef USE_IPV6])
AH_VERBATIM([USE_MMX],[#undef USE_MMX])
AH_VERBATIM([USE_OPENSSL],[#undef USE_OPENSSL])
AH_VERBATIM([USE_PLUGIN],[#undef USE_PLUGIN])
AH_VERBATIM([USE_XFT],[#undef USE_XFT])
AH_VERBATIM([USE_XLIB],[#undef USE_XLIB])
AH_VERBATIM([USE_SIGACTION],[#undef USE_SIGACTION])
AH_VERBATIM([USING_FREEBSD],[#undef USING_FREEBSD])
AH_VERBATIM([USING_LINUX],[#undef USING_LINUX])
AH_VERBATIM([socklen_t],[#undef socklen_t])
AH_VERBATIM([USE_DBUS],[#undef USE_DBUS])
AC_DEFINE([XCHAT_REVISION],["1515"],[XChat SVN Revision])
AC_PATH_PROG(sedpath, sed)
if test "_$sedpath" = _; then
AC_MSG_ERROR("Cannot find sed: I need it\!")
fi
AC_PATH_PROG(unamepath, uname)
if test "_$unamepath" = _; then
system="unknown"
else
AC_MSG_CHECKING(system type)
system=`$unamepath -s`
AC_MSG_RESULT($system)
if test "$system" = "Linux"; then
AC_DEFINE(USING_LINUX)
fi
if test "$system" = "FreeBSD"; then
AC_DEFINE(USING_FREEBSD)
fi
fi
dnl *********************************************************************
dnl ** configure switches ***********************************************
dnl *********************************************************************
AC_ARG_ENABLE(socks,
[ --enable-socks link with SOCKS5 library (default: no)],
socks=$enableval, socks=no)
AC_ARG_ENABLE(ipv6,
[ --enable-ipv6 enable IPv6 (default: no)],
ipv6=$enableval, ipv6=no)
AC_ARG_ENABLE(xft,
[ --enable-xft enable use of Xft directly (default: no)],
xft=$enableval, xft=no)
AC_ARG_ENABLE(openssl,
[ --enable-openssl[=PATH] enable use of openSSL],
openssl=$enableval, openssl=yes)
AC_ARG_ENABLE(gtkfe,
[ --disable-gtkfe disable building gtk frontend],
gtkfe=$enableval, gtkfe=yes)
AC_ARG_ENABLE(textfe,
[ --enable-textfe build the text frontend (default: no)],
textfe=$enableval, textfe=no)
dnl AC_ARG_ENABLE(gnome,
dnl [ --disable-gnome disable use of gnome],
dnl gnome=$enableval, gnome=yes)
AC_ARG_ENABLE(xlib,
[ --disable-xlib disable use of xlib (for non X11 systems)],
xlib=$enableval, xlib=yes)
AC_ARG_ENABLE(python,
[ --disable-python don't build the python plugin],
python=$enableval, python=yes)
AC_ARG_ENABLE(perl,
[ --disable-perl don't build the perl plugin],
perl=$enableval, perl=yes)
AC_ARG_ENABLE(perl_old,
[ --disable-perl_old no backwards compatibility for perl plugin],
perl_old=$enableval, perl_old=yes)
AC_ARG_ENABLE(tcl,
[ --enable-tcl[=PATH] directory with Tcl config file: tclConfig.sh],
tcl=$enableval, tcl=yes)
AC_ARG_ENABLE(plugin,
[ --disable-plugin disable plugin support],
plugin=$enableval, plugin=yes)
AC_ARG_ENABLE(dbus,
[ --disable-dbus disable DBUS support],
dbus=$enableval, dbus=yes)
AC_ARG_ENABLE(libnotify,
[ --disable-libnotify disable libnotify support],
libnotify=$enableval, libnotify=yes)
AC_ARG_ENABLE(mmx,
[ --disable-mmx disable MMX assembly routines],
mmx=$enableval, mmx=yes)
AC_ARG_ENABLE(shm,
[ --enable-shm enable use of XShm for fast tinting (default: no)],
shm=$enableval, shm=no)
AC_ARG_ENABLE(spell,
[ --enable-spell=type enable spelling type: none static libsexy gtkspell],
spell=$enableval, spell=static)
AC_ARG_ENABLE(ntlm,
[ --enable-ntlm enable Microsoft's NTLM auth (libntlm) library support (default: no)],
ntlm=$enableval, ntlm=no)
dnl *********************************************************************
dnl ** GLIB *************************************************************
dnl *********************************************************************
AM_PATH_GLIB_2_0(2.0.3, glib=yes, glib=no)
if test "$glib" = no; then
AC_MSG_ERROR("Cannot find glib")
fi
COMMON_CFLAGS="$GLIB_CFLAGS"
COMMON_LIBS="$GLIB_LIBS"
dnl *********************************************************************
dnl ** GTK **************************************************************
dnl *********************************************************************
AM_PATH_GTK_2_0(2.10.0, havegtk=yes, havegtk=no)
if test "$havegtk" = no; then
gtkfe=no
echo
echo Cannot find GTK\! Not building GTK FrontEnd.
echo
fi
if test "$gtkfe" != yes; then
gnome=no
COMMON_LIBS="$GLIB_LIBS"
COMMON_CFLAGS="$GLIB_CFLAGS"
fi
dnl *********************************************************************
dnl ** GNOME ************************************************************
dnl *********************************************************************
GUI_LIBS="$GUI_LIBS $GTK_LIBS"
GUI_CFLAGS="$GUI_CFLAGS $GTK_CFLAGS"
gnome=no
#if test "$gnome" = yes; then
# AC_PATH_PROG(pkgconfigpath, pkg-config)
# AC_MSG_CHECKING(Gnome2 compile flags)
# GNOME_CFLAGS="`$pkgconfigpath libgnome-2.0 --cflags 2>/dev/null`"
# if test "_$GNOME_CFLAGS" = _ ; then
# gnome=no
# AC_MSG_RESULT([Gnome not found, building without it.])
# else
# GNOME_VER="`$pkgconfigpath libgnome-2.0 --modversion`"
# GUI_LIBS="$GUI_LIBS `$pkgconfigpath libgnome-2.0 --libs`"
# GUI_CFLAGS="$GUI_CFLAGS $GNOME_CFLAGS"
# AC_DEFINE(USE_GNOME)
# AC_MSG_RESULT(ok)
# fi
#fi
# GConf
AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
dnl *********************************************************************
dnl ** XFT **************************************************************
dnl *********************************************************************
if test "$xft" = yes; then
AC_PATH_PROG(pkgconfigpath, pkg-config)
if $pkgconfigpath xft --exists; then
GUI_CFLAGS="$GUI_CFLAGS `$pkgconfigpath xft --cflags`"
GUI_LIBS="$GUI_LIBS `$pkgconfigpath xft --libs`"
else
xft=no
oldCPPFLAGS=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $GTK_CFLAGS"
AC_CHECK_HEADERS(X11/Xft/Xft.h, xft=yes)
CPPFLAGS=$oldCPPFLAGS
fi
if test "$xft" = yes; then
AC_DEFINE(USE_XFT)
fi
fi
dnl *********************************************************************
dnl ** XLIB *************************************************************
dnl *********************************************************************
if test "$xlib" = yes; then
AC_DEFINE(USE_XLIB)
if test "$system" = "SunOS"; then
LIBS="$LIBS -L/usr/openwin/lib -lX11"
else
AC_CHECK_LIB(X11, XSetWMHints)
fi
else
shm=no
fi
dnl *********************************************************************
dnl ** PERL *************************************************************
dnl *********************************************************************
if test "$perl" = yes; then
AC_PATH_PROG(perlpath, perl)
AC_MSG_CHECKING(for Perl compile flags)
PERL_CFLAGS=`$perlpath -MExtUtils::Embed -e ccopts 2>/dev/null`
if test "_$PERL_CFLAGS" = _ ; then
AC_MSG_RESULT([not found, building without perl.])
perl=no
else
PERL_LDFLAGS=`$perlpath -MExtUtils::Embed -e ldopts |$sedpath 's/-lgdbm //'`
PERL_LDFLAGS=`echo $PERL_LDFLAGS |$sedpath 's/-ldb //'`
PERL_LDFLAGS=`echo $PERL_LDFLAGS |$sedpath 's/-lndbm //'`
if test "$system" = "Linux"; then
PERL_LDFLAGS=`echo $PERL_LDFLAGS |$sedpath 's/-lnsl //'`
PERL_LDFLAGS=`echo $PERL_LDFLAGS |$sedpath 's/-lposix //'`
fi
PERL_LDFLAGS=`echo $PERL_LDFLAGS |$sedpath 's/-lc //'`
AC_MSG_RESULT(ok)
# oldLIBS=$LIBS
# LIBS="$LIBS $PERL_LDFLAGS"
# AC_CHECK_FUNC(eval_pv)
# AC_CHECK_FUNC(call_pv)
# LIBS=$oldLIBS
AC_MSG_CHECKING(for perl >= 5.8.0)
PERL_VER=`$perlpath -e 'print $]>= 5.008?"yes":"no"'`
if test "$PERL_VER" = "yes"; then
AC_MSG_RESULT(yes)
AC_MSG_CHECKING(if perl plugin will be backward compatible)
if test "$perl_old" = "yes"; then
AC_MSG_RESULT(yes)
AC_DEFINE(OLD_PERL)
else
AC_MSG_RESULT(no)
fi
else
AC_MSG_RESULT(no)
echo "perl version too old, building without perl."
perl=no
fi
fi
fi
dnl *********************************************************************
dnl ** PYTHON ***********************************************************
dnl *********************************************************************
if test "$python" = yes; then
AC_PATH_PROG(pythonpath, python2)
if test "_$pythonpath" = _ ; then
AC_PATH_PROG(pythonpath, python)
fi
if test "_$pythonpath" = _ ; then
python=no
else
AC_MSG_CHECKING(Python version)
changequote(<<, >>)dnl
PY_VER=`$pythonpath -c 'import distutils.sysconfig; print distutils.sysconfig.get_config_vars("VERSION")[0];'`
PY_LIB=`$pythonpath -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(standard_lib=1);'`
PY_INC=`$pythonpath -c 'import distutils.sysconfig; print distutils.sysconfig.get_config_vars("INCLUDEPY")[0];'`
$pythonpath -c "import sys; map(int,sys.version[:3].split('.')) >= [2,2] or sys.exit(1)"
changequote([, ])dnl
AC_MSG_RESULT($PY_VER)
if test "$?" != "1"; then
AC_MSG_CHECKING(Python compile flags)
PY_PREFIX=`$pythonpath -c 'import sys; print sys.prefix'`
PY_EXEC_PREFIX=`$pythonpath -c 'import sys; print sys.exec_prefix'`
if test -f $PY_INC/Python.h; then
PY_LIBS="-L$PY_LIB/config -lpython$PY_VER -lpthread -lutil"
PY_CFLAGS="-I$PY_INC"
AC_MSG_RESULT(ok)
else
python=no
AC_MSG_RESULT([Can't find Python.h])
fi
else
echo "Python too old. Only 2.2 or above is supported."
python=no
fi
fi
fi
dnl *********************************************************************
dnl ** TCL **************************************************************
dnl *********************************************************************
AC_MSG_CHECKING(for location of tclConfig.sh)
dirs="$tcl /lib /usr/lib /usr/tcl/lib /usr/lib/tcl8.4 /usr/local/lib /usr/local/tcl-8.4/lib /usr/local/tcl/lib /opt/lib /usr/lib/tcl8.3"
found=0
if test "$tcl" != "no"; then
tcl=no
for try in $dirs; do
if test -f $try/tclConfig.sh; then
found=1
. $try/tclConfig.sh
TCL_LIBS="$TCL_LIB_SPEC $TCL_LIBS"
TCL_CFLAGS="-I${TCL_PREFIX}/include $TCL_INCLUDE_SPEC"
tcl=yes
AC_MSG_RESULT($try/tclConfig.sh)
break
fi
done
if test "$found" -eq 0 ; then
AC_MSG_RESULT([tclConfig.sh not found - use the --enable-tcl option])
fi
fi
dnl *********************************************************************
dnl ** IPv6 *************************************************************
dnl *********************************************************************
dnl purely for Solaris
AC_CHECK_FUNC(select, ,
AC_CHECK_LIB(socket, select, ,
AC_CHECK_LIB(nsl, select, ,
AC_CHECK_LIB(inet, select, ,
AC_CHECK_LIB(cposix, select, ,
AC_CHECK_LIB(net, select, ,
AC_MSG_WARN(i can not find select. you might need to help me)))))))
AC_CHECK_LIB(socket, select)
if test "$ipv6" = yes; then
AC_CHECK_FUNCS(getaddrinfo, have_getaddrinfo=yes)
AC_MSG_CHECKING(whether to enable IPv6 support)
if test "$have_getaddrinfo" = yes; then
AC_MSG_RESULT(yes)
AC_DEFINE(USE_IPV6)
else
ipv6=no
AC_MSG_RESULT(no)
fi
fi
dnl *********************************************************************
dnl ** OPENSSL **********************************************************
dnl *********************************************************************
retry=no
if test "$openssl" != no; then
AC_PATH_PROG(pkgconfigpath, pkg-config)
AC_MSG_CHECKING(for openssl through pkg-config)
if $pkgconfigpath openssl --exists; then
CPPFLAGS="$CPPFLAGS `$pkgconfigpath openssl --cflags`"
LIBS="$LIBS `$pkgconfigpath openssl --libs`"
AC_DEFINE(USE_OPENSSL)
AC_MSG_RESULT(yes)
openssl=yes
else
AC_MSG_RESULT(no)
retry=yes
fi
fi
if test "$retry" = "yes"; then
unset openssl_path ac_cv_lib_ssl_SSL_new ac_cv_header_openssl_ssl_h
if test "$openssl" != yes; then
openssl_path=$openssl
fi
openssl=no
SAVED_LIBS=$LIBS
LIBS="$LIBS -lcrypto"
if test -n "$openssl_path"; then
LIBS="-L$openssl_path/lib $LIBS"
fi
AC_CHECK_LIB(ssl, SSL_new, have_openssl=yes)
LIBS=$SAVED_LIBS
if test "$have_openssl" = yes; then
SAVED_CPPFLAGS=$CPPFLAGS
if test -n "$openssl_path"; then
CPPFLAGS="-I$openssl_path/include $CPPFLAGS"
fi
AC_CHECK_HEADERS(openssl/ssl.h, have_openssl_h=yes)
if test "$have_openssl_h" = yes; then
openssl=yes
AC_DEFINE(USE_OPENSSL)
LIBS="$LIBS -lssl -lcrypto"
if test -n "$openssl_path"; then
LIBS="-L$openssl_path/lib $LIBS"
fi
else
CPPFLAGS=$SAVED_CPPFLAGS
fi
fi
fi
dnl *********************************************************************
dnl ** LIBPROXY *********************************************************
dnl *********************************************************************
PKG_CHECK_MODULES([LIBPROXY], [libproxy-1.0], [libproxy=yes], [
AC_MSG_RESULT(no)
libproxy=no
])
if test "x$libproxy" = "xyes" ; then
AC_DEFINE(USE_LIBPROXY)
fi
dnl *********************************************************************
dnl ** PLUGIN ***********************************************************
dnl *********************************************************************
if test "$plugin" = yes; then
AC_CHECK_FUNCS(dlopen, have_dl=yes)
if test "$have_dl" != yes; then
AC_CHECK_LIB(dl, dlopen, have_dl=yes)
if test "$have_dl" = yes; then
LIBS="$LIBS -ldl"
fi
fi
if test "$have_dl" = yes; then
AC_DEFINE(USE_PLUGIN)
AC_PATH_PROG(pkgconfigpath, pkg-config)
dnl we just need the -Wl,--export-dynamic, but not -lgmodule-2.0
RDYNAMIC_FLAGS="`$pkgconfigpath gmodule-2.0 --libs | $sedpath 's/ -lgmodule-2.0//'`"
LIBS="$LIBS $RDYNAMIC_FLAGS"
if test "$LD" = ""; then
VS="`ld --help | grep version-script 2> /dev/null`"
else
VS="`$LD --help | grep version-script 2> /dev/null`"
fi
if test "$VS" != ""; then
GUI_LIBS="$GUI_LIBS -Wl,--version-script,\$(srcdir)/../version-script"
fi
else
plugin=no
fi
fi
dnl #######################################################################
dnl # Check for DBUS libraries
dnl #######################################################################
if test "x$dbus" = "xyes" ; then
PKG_CHECK_MODULES(DBUS, [dbus-1 >= 0.60 dbus-glib-1 >= 0.60 gthread-2.0], dbus=yes, [
AC_MSG_RESULT(no)
dbus=no
])
AC_PATH_PROG(DBUS_BINDING_TOOL, dbus-binding-tool, no)
AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal, no)
if test "x$DBUS_BINDING_TOOL" = "xno" || test "x$GLIB_GENMARSHAL" = "xno" || test "x$dbus" = "xno" ; then
dbus="no"
else
COMMON_LIBS="$COMMON_LIBS $DBUS_LIBS $LIBPROXY_LIBS"
COMMON_CFLAGS="$COMMON_CFLAGS $DBUS_CFLAGS"
AC_DEFINE(USE_DBUS)
AS_AC_EXPAND(DATADIR, $datadir)
DBUS_SERVICES_DIR="$DATADIR/dbus-1/services"
AC_SUBST(DBUS_SERVICES_DIR)
AC_DEFINE_UNQUOTED(DBUS_SERVICES_DIR, "$DBUS_SERVICES_DIR", [Where services dir for DBUS is])
fi
fi
dnl *********************************************************************
dnl ** LIBNOTIFY ********************************************************
dnl *********************************************************************
if test "x$libnotify" = "xyes" ; then
PKG_CHECK_MODULES(LIBNOTIFY, libnotify >= 0.4, [], [
AC_MSG_RESULT(no)
libnotify=no
])
if test "$libnotify" != "no" ; then
GUI_LIBS="$GUI_LIBS $LIBNOTIFY_LIBS"
GUI_CFLAGS="$GUI_CFLAGS $LIBNOTIFY_CFLAGS"
AC_DEFINE(USE_LIBNOTIFY)
fi
fi
dnl *********************************************************************
dnl ** SPELL ************************************************************
dnl *********************************************************************
if test "$spell" = "gtkspell" ; then
PKG_CHECK_MODULES(GTKSPELL, gtkspell-2.0 >= 2.0.2, [], [
AC_MSG_RESULT(no)
spell=no
])
if test "$spell" != "no" ; then
GUI_LIBS="$GUI_LIBS $GTKSPELL_LIBS"
GUI_CFLAGS="$GUI_CFLAGS $GTKSPELL_CFLAGS"
AC_DEFINE(USE_GTKSPELL)
fi
fi
if test "$spell" = "libsexy" ; then
PKG_CHECK_MODULES([LIBSEXY], [libsexy >= 0.1.8], libsexy=yes, AC_MSG_RESULT(no))
if test "$libsexy" = "yes" ; then
GUI_LIBS="$GUI_LIBS $LIBSEXY_LIBS"
GUI_CFLAGS="$GUI_CFLAGS $LIBSEXY_CFLAGS"
AC_DEFINE(USE_LIBSEXY)
else
dnl use builtin static one
spell="static"
fi
fi
if test "$spell" = "static" ; then
PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.0.0, [
AC_DEFINE(HAVE_ISO_CODES)
AC_DEFINE(USE_LIBSEXY)
GUI_CFLAGS="$GUI_CFLAGS -I/usr/include/libxml2"
LIBS="$LIBS -lxml2"
], [
AC_MSG_ERROR("Cannot find libxml2")
])
fi
dnl *********************************************************************
dnl ** CONDITIONALS *****************************************************
dnl *********************************************************************
AM_CONDITIONAL(USE_OPENSSL, test "x$openssl" = "xyes")
AM_CONDITIONAL(USE_LIBSEXY, test "x$spell" = "xstatic")
AM_CONDITIONAL(USE_LIBNOTIFY, test "x$libnotify" = "xyes")
AM_CONDITIONAL(DO_TEXT, test "x$textfe" = "xyes")
AM_CONDITIONAL(DO_GTK, test "x$gtkfe" = "xyes")
AM_CONDITIONAL(DO_PERL, test "x$perl" = "xyes")
AM_CONDITIONAL(DO_PYTHON, test "x$python" = "xyes")
AM_CONDITIONAL(DO_TCL, test "x$tcl" = "xyes")
AM_CONDITIONAL(DO_PLUGIN, test "x$plugin" = "xyes")
AM_CONDITIONAL(USE_DBUS, test "x$dbus" = "xyes")
AM_CONDITIONAL(DO_GCONF, test "x$GCONFTOOL" != "xno")
dnl *********************************************************************
dnl ** SOCKS5 ***********************************************************
dnl *********************************************************************
if test "$socks" = yes; then
socks=no
AC_CHECK_LIB(socks5, SOCKSconnect, have_socks=yes)
if test "$have_socks" = yes; then
AC_CHECK_HEADERS(socks.h, have_socks_h=yes)
if test "$have_socks_h" = yes; then
socks=yes
AC_DEFINE(SOCKS)
LIBS="$LIBS -lsocks5"
fi
fi
fi
dnl *********************************************************************
dnl ** MS PROXY *********************************************************
dnl *********************************************************************
have_ntlm="no"
if test "x$ntlm" = "xyes" ; then
have_ntlm="no"
AC_CHECK_LIB(ntlm, ntlm_smb_encrypt, have_ntlm=yes)
if test "$have_ntlm" = yes; then
LIBS="$LIBS -lntlm"
AC_DEFINE(USE_MSPROXY)
fi
fi
dnl *********************************************************************
dnl ** XShm *************************************************************
dnl *********************************************************************
if test "$shm" = yes; then
oldl=$LIBS
oldc=$CPPFLAGS
LIBS="$LIBS `$pkgconfigpath --libs-only-L xft`"
CPPFLAGS="$CPPFLAGS `$pkgconfigpath --cflags-only-I xft`"
shm=no
AC_CHECK_LIB(Xext, XShmAttach, shm=yes)
if test "$shm" = yes; then
shm=no
AC_CHECK_HEADERS(sys/ipc.h, shm=yes)
if test "$shm" = yes; then
shm=no
AC_CHECK_HEADERS(sys/shm.h, shm=yes)
fi
fi
LIBS=$oldl
if test "$shm" = yes; then
GUI_LIBS="$GUI_LIBS `$pkgconfigpath --libs-only-L xft` -lX11 -lXext"
AC_DEFINE(USE_SHM)
else
CPPFLAGS=$oldc
fi
fi
dnl *********************************************************************
dnl ** MMX **************************************************************
dnl *********************************************************************
dnl we don't need mmx on *this* machine, just i386, because
dnl it's checked at runtime.
if test "$mmx" = "yes"; then
case $host_cpu in
i386|i486|i586|i686|i786|k6|k7)
mmx=yes
;;
*)
mmx=no
esac
if test "$system" = "OpenBSD"; then
dnl openbsd fails because mmx_cmod doesn't prefix its symbols with underscore.
dnl xtext.o: Undefined symbol `_shade_ximage_15_mmx' referenced from text segment
mmx=no
fi
if test "$mmx" = "yes"; then
AC_DEFINE(USE_MMX)
fi
fi
AM_CONDITIONAL(USE_MMX, test "$mmx" = "yes")
dnl *********************************************************************
dnl ** GCC FLAGS ********************************************************
dnl *********************************************************************
dnl Only use -Wall and -pipe if we have gcc
if test "x$GCC" = "xyes"; then
if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
CFLAGS="$CFLAGS -Wall"
fi
if test "$system" = "Linux" -o "$system" = "FreeBSD"; then
if test -z "`echo "$CFLAGS" | grep "\-pipe" 2> /dev/null`" ; then
CFLAGS="$CFLAGS -pipe"
fi
fi
if test -z "`echo "$CFLAGS" | grep "\-g " 2> /dev/null`" ; then
CFLAGS="$CFLAGS -g"
fi
fi
dnl does this compiler support -Wno-pointer-sign ?
AC_MSG_CHECKING([if gcc accepts -Wno-pointer-sign ])
safe_CFLAGS=$CFLAGS
CFLAGS="-Wno-pointer-sign"
AC_TRY_COMPILE(, [
int main () { return 0 ; }
],
[
no_pointer_sign=yes
AC_MSG_RESULT([yes])
], [
no_pointer_sign=no
AC_MSG_RESULT([no])
])
CFLAGS=$safe_CFLAGS
if test x$no_pointer_sign = xyes; then
CFLAGS="$CFLAGS -Wno-pointer-sign"
fi
dnl does this compiler support -funsigned-char ?
AC_MSG_CHECKING([if gcc accepts -funsigned-char ])
safe_CFLAGS=$CFLAGS
CFLAGS="-funsigned-char"
AC_TRY_COMPILE(, [
int main () { return 0 ; }
],
[
unsigned_char=yes
AC_MSG_RESULT([yes])
], [
unsigned_char=no
AC_MSG_RESULT([no])
])
CFLAGS=$safe_CFLAGS
if test x$unsigned_char = xyes; then
CFLAGS="$CFLAGS -funsigned-char"
fi
dnl *********************************************************************
dnl ** FUNCTIONS/LIBS/CFLAGS ********************************************
dnl *********************************************************************
AC_MSG_CHECKING(for modern sigaction)
dnl libc5 on linux and FreeBSD 3.x doesn't have siginfo_t
dnl and the sa_sigation field.
AC_TRY_COMPILE(
[#include <signal.h>],
[struct sigaction act;
siginfo_t *si;
act.sa_sigaction = 0;],
[
AC_MSG_RESULT(yes)
AC_DEFINE(USE_SIGACTION)
],
AC_MSG_RESULT(no))
AC_PATH_PROG(gdkpixbufcsourcepath, gdk-pixbuf-csource)
AC_SUBST(gdkpixbufcsourcepath)
if test "$gtkfe" != no -a "_$gdkpixbufcsourcepath" = _; then
AC_MSG_ERROR("Cannot find gdk-pixbuf-csource: Install GTK+ 2.0\!")
fi
dnl if we don't have this, use g_snprintf instead
AC_CHECK_FUNCS(snprintf vsnprintf memrchr strtoull)
AC_CHECK_FUNC(gethostbyname, ,
AC_CHECK_LIB(resolv, gethostbyname, ,
AC_CHECK_LIB(nsl, gethostbyname)))
AC_CHECK_FUNC(gethostname, , AC_CHECK_LIB(nsl, gethostname))
dnl necessary for IRIX
AC_CHECK_HEADERS(strings.h)
dnl Check for type in sys/socket.h - from Squid source (GPL)
AC_CACHE_CHECK(for socklen_t, ac_cv_type_socklen_t, [
AC_EGREP_CPP([socklen_t[^a-zA-Z_0-9]], [#include <sys/types.h>
#include <sys/socket.h>
#if STDC_HEADERS
#include <stdlib.h>
#include <stddef.h>
#endif],
ac_cv_type_socklen_t=yes,
ac_cv_type_socklen_t=no)
])
if test $ac_cv_type_socklen_t = no; then
AC_DEFINE(socklen_t, int)
fi
dnl Mac OS X and Darwin use lookupd, which caches DNS queries by default
AC_EGREP_CPP(lookupd, dnl
[#if (defined(__APPLE__) && defined(__MACH__))
lookupd
#endif], AC_DEFINE([LOOKUPD],1,[Define to 1 if the system uses lookupd]))
dnl freebsd needs this
LIBS="$LIBS $INTLLIBS"
CFLAGS="$CFLAGS $CPPFLAGS"
GUI_LIBS="$GUI_LIBS $COMMON_LIBS"
dnl make these visible to all Makefiles
AC_SUBST(GUI_LIBS)
AC_SUBST(GUI_CFLAGS)
AC_SUBST(COMMON_LIBS)
AC_SUBST(COMMON_CFLAGS)
AC_SUBST(PERL_CFLAGS)
AC_SUBST(PERL_LDFLAGS)
AC_SUBST(PY_CFLAGS)
AC_SUBST(PY_LIBS)
AC_SUBST(TCL_LIBS)
AC_SUBST(TCL_CFLAGS)
AC_SUBST(DBUS_CFLAGS)
AC_SUBST(DBUS_LIBS)
PLUGIN_INCLUDES='-I$(top_srcdir)/plugins'
AC_SUBST(PLUGIN_INCLUDES)
dnl for plugin.c and pixmaps.c
test "x$prefix" = xNONE && prefix="$ac_default_prefix"
test "x$exec_prefix" = xNONE && exec_prefix="$prefix"
AC_DEFINE_UNQUOTED(PREFIX, "${prefix}")
HEXCHATLIBDIR=`eval echo ${libdir}/hexchat`
AC_DEFINE_UNQUOTED(HEXCHATLIBDIR, "$HEXCHATLIBDIR")
HEXCHATSHAREDIR=`eval echo ${datadir}`
AC_DEFINE_UNQUOTED(HEXCHATSHAREDIR, "$HEXCHATSHAREDIR")
dnl for plugins/xxx/Makefile.am
hexchatlibdir=${libdir}/hexchat
AC_SUBST(hexchatlibdir)
AC_OUTPUT([
Makefile
src/Makefile
src/common/Makefile
src/common/dbus/Makefile
src/fe-text/Makefile
src/fe-gtk/Makefile
src/pixmaps/Makefile
plugins/Makefile
plugins/python/Makefile
plugins/perl/Makefile
plugins/tcl/Makefile
intl/Makefile
po/Makefile.in
])
echo
echo hexchat $VERSION
echo
echo Building GTK+ Interface .... : $gtkfe
echo Building TEXT Interface .... : $textfe
echo
echo PLUGINS: Perl: $perl Python: $python TCL: $tcl
echo
echo mmx tinting ......... : $mmx\ spelling .............. : $spell
echo XShm tinting ........ : $shm\ plugin interface ...... : $plugin
if test "$xft" = no; then
echo text backend ........ : pango\ nls/gettext ........... : $USE_NLS
else
echo text backend ........ : xft\ nls/gettext ........... : $USE_NLS
fi
echo openssl support ..... : $openssl\ ipv6 support .......... : $ipv6
echo dbus support ........ : $dbus\ msproxy ntlm \(ISA\) .... : $have_ntlm
echo libnotify support ... : $libnotify
echo
echo The binary will be installed in $prefix/bin
echo
if test "$gtkfe" = no; then
echo Warning: The GTK \(GUI\) frontend will not be built.
echo
fi
if test "$spell" = "gtkspell"; then
echo Warning: GTK SPELL is not the recommended spelling library.
echo
fi
echo configure complete, now type \'make\' and pray.
echo

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/icons">
<file alias="hexchat.png" preprocess="to-pixdata">icons/hexchat.png</file>
<file alias="book.png" preprocess="to-pixdata">icons/book.png</file>
<file alias="ulist_voice.png" preprocess="to-pixdata">icons/ulist_voice.png</file>
<file alias="ulist_halfop.png" preprocess="to-pixdata">icons/ulist_halfop.png</file>
<file alias="ulist_op.png" preprocess="to-pixdata">icons/ulist_op.png</file>
<file alias="ulist_owner.png" preprocess="to-pixdata">icons/ulist_owner.png</file>
<file alias="ulist_founder.png" preprocess="to-pixdata">icons/ulist_founder.png</file>
<file alias="ulist_netop.png" preprocess="to-pixdata">icons/ulist_netop.png</file>
<file alias="tray_normal.png" preprocess="to-pixdata">icons/hexchat.png</file>
<file alias="tray_fileoffer.png" preprocess="to-pixdata">icons/tray_fileoffer.png</file>
<file alias="tray_highlight.png" preprocess="to-pixdata">icons/tray_highlight.png</file>
<file alias="tray_message.png" preprocess="to-pixdata">icons/tray_message.png</file>
<file alias="tree_channel.png" preprocess="to-pixdata">icons/tree_channel.png</file>
<file alias="tree_dialog.png" preprocess="to-pixdata">icons/tree_dialog.png</file>
<file alias="tree_server.png" preprocess="to-pixdata">icons/tree_server.png</file>
<file alias="tree_util.png" preprocess="to-pixdata">icons/tree_util.png</file>
</gresource>
</gresources>

View File

Before

Width:  |  Height:  |  Size: 841 B

After

Width:  |  Height:  |  Size: 841 B

610
data/icons/hexchat-b.svg Normal file
View File

@ -0,0 +1,610 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
sodipodi:docname="hexchat4.svg"
version="1.0"
inkscape:version="0.48.3.1 r9886"
sodipodi:version="0.32"
id="svg2"
height="64"
width="64"
inkscape:export-filename="D:\Downloads\hexchat3.png"
inkscape:export-xdpi="22.5"
inkscape:export-ydpi="22.5">
<defs
id="defs4">
<linearGradient
id="linearGradient2289">
<stop
style="stop-color:#ff2600;stop-opacity:1;"
offset="0"
id="stop2291" />
<stop
style="stop-color:#ffd600;stop-opacity:1;"
offset="1"
id="stop2293" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2289"
id="linearGradient1335"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.545166,0,0,0.544959,0.186963,35.29511)"
x1="16.88862"
y1="77.796608"
x2="72.348671"
y2="20.59322" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2289"
id="linearGradient1337"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.545166,0,0,0.544959,0.186963,35.29511)"
x1="16.88862"
y1="77.796608"
x2="16.88862"
y2="19.001091" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2289"
id="linearGradient1317"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.735969,0,0,0.735801,-2.052758,-16.66733)"
x1="16.88862"
y1="77.796608"
x2="72.348671"
y2="20.59322" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2289"
id="linearGradient1319"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.735969,0,0,0.735801,-2.052758,-16.66733)"
x1="16.88862"
y1="77.796608"
x2="16.88862"
y2="19.001091" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2289"
id="linearGradient1320"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.735969,0,0,0.735801,-2.172329,-1.111016)"
x1="16.88862"
y1="77.796608"
x2="72.348671"
y2="20.59322" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2289"
id="linearGradient1322"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.735969,0,0,0.735801,-2.172329,-1.111016)"
x1="16.88862"
y1="77.796608"
x2="16.88862"
y2="19.001091" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2289"
id="linearGradient2997"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.735969,0,0,0.735801,-160.10656,-7.1914058)"
x1="130.2673"
y1="78.743134"
x2="129.2081"
y2="25.771122" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2289"
id="linearGradient3011"
x1="34.62241"
y1="53.508884"
x2="34.466503"
y2="5.4893961"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2289"
id="linearGradient3030"
gradientUnits="userSpaceOnUse"
x1="34.62241"
y1="53.508884"
x2="34.466503"
y2="5.4893961" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2289"
id="linearGradient3070"
gradientUnits="userSpaceOnUse"
x1="34.62241"
y1="53.508884"
x2="34.466503"
y2="5.4893961"
gradientTransform="matrix(0.99894925,0,0,0.97549134,-3.1829063,4.465557)" />
<filter
id="filter3281"
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow">
<feFlood
id="feFlood3283"
flood-opacity="0.33"
flood-color="rgb(0,0,0)"
result="flood" />
<feComposite
id="feComposite3285"
in2="SourceGraphic"
in="flood"
operator="in"
result="composite1" />
<feGaussianBlur
id="feGaussianBlur3287"
in="composite"
stdDeviation="2"
result="blur" />
<feOffset
id="feOffset3289"
dx="4"
dy="1"
result="offset" />
<feComposite
id="feComposite3291"
in2="offset"
in="SourceGraphic"
operator="over"
result="composite2" />
</filter>
<filter
id="filter3293"
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow">
<feFlood
id="feFlood3295"
flood-opacity="0.33"
flood-color="rgb(0,0,0)"
result="flood" />
<feComposite
id="feComposite3297"
in2="SourceGraphic"
in="flood"
operator="in"
result="composite1" />
<feGaussianBlur
id="feGaussianBlur3299"
in="composite"
stdDeviation="2"
result="blur" />
<feOffset
id="feOffset3301"
dx="4"
dy="1"
result="offset" />
<feComposite
id="feComposite3303"
in2="offset"
in="SourceGraphic"
operator="over"
result="composite2" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2289"
id="linearGradient4089"
x1="99.348503"
y1="59.934135"
x2="100.40916"
y2="10.613438"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2289"
id="linearGradient4093"
gradientUnits="userSpaceOnUse"
x1="99.348503"
y1="59.934135"
x2="100.40916"
y2="10.613438" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2289"
id="linearGradient4096"
gradientUnits="userSpaceOnUse"
x1="99.348503"
y1="59.934135"
x2="100.40916"
y2="10.613438" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2289"
id="linearGradient4098"
gradientUnits="userSpaceOnUse"
x1="99.348503"
y1="59.934135"
x2="100.40916"
y2="10.613438"
gradientTransform="translate(-70.003571,-2.298097)" />
<filter
id="filter4111"
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow">
<feFlood
id="feFlood4113"
flood-opacity="0.33"
flood-color="rgb(0,0,0)"
result="flood" />
<feComposite
id="feComposite4115"
in2="SourceGraphic"
in="flood"
operator="in"
result="composite1" />
<feGaussianBlur
id="feGaussianBlur4117"
in="composite"
stdDeviation="2"
result="blur" />
<feOffset
id="feOffset4119"
dx="4"
dy="1"
result="offset" />
<feComposite
id="feComposite4121"
in2="offset"
in="SourceGraphic"
operator="over"
result="composite2" />
</filter>
<filter
id="filter4123"
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow">
<feFlood
id="feFlood4125"
flood-opacity="0.33"
flood-color="rgb(0,0,0)"
result="flood" />
<feComposite
id="feComposite4127"
in2="SourceGraphic"
in="flood"
operator="in"
result="composite1" />
<feGaussianBlur
id="feGaussianBlur4129"
in="composite"
stdDeviation="2"
result="blur" />
<feOffset
id="feOffset4131"
dx="4"
dy="1"
result="offset" />
<feComposite
id="feComposite4133"
in2="offset"
in="SourceGraphic"
operator="over"
result="composite2" />
</filter>
<linearGradient
y2="19.001091"
x2="16.88862"
y1="77.796608"
x1="16.88862"
gradientTransform="matrix(0.735969,0,0,0.735801,-2.172329,-1.111016)"
gradientUnits="userSpaceOnUse"
id="linearGradient1330"
xlink:href="#linearGradient2289-4"
inkscape:collect="always" />
<linearGradient
y2="20.59322"
x2="72.348671"
y1="77.796608"
x1="16.88862"
gradientTransform="matrix(0.735969,0,0,0.735801,-2.172329,-1.111016)"
gradientUnits="userSpaceOnUse"
id="linearGradient1328"
xlink:href="#linearGradient2289-4"
inkscape:collect="always" />
<linearGradient
y2="19.001091"
x2="16.88862"
y1="77.796608"
x1="16.88862"
gradientTransform="matrix(0.735969,0,0,0.735801,-2.172329,-1.111016)"
gradientUnits="userSpaceOnUse"
id="linearGradient1322-5"
xlink:href="#linearGradient2289-4"
inkscape:collect="always" />
<linearGradient
y2="20.59322"
x2="72.348671"
y1="77.796608"
x1="16.88862"
gradientTransform="matrix(0.735969,0,0,0.735801,-2.172329,-1.111016)"
gradientUnits="userSpaceOnUse"
id="linearGradient1320-4"
xlink:href="#linearGradient2289-4"
inkscape:collect="always" />
<linearGradient
y2="19.001091"
x2="16.88862"
y1="77.796608"
x1="16.88862"
gradientTransform="matrix(0.735969,0,0,0.735801,-2.052758,-16.66733)"
gradientUnits="userSpaceOnUse"
id="linearGradient1319-2"
xlink:href="#linearGradient2289-4"
inkscape:collect="always" />
<linearGradient
y2="20.59322"
x2="72.348671"
y1="77.796608"
x1="16.88862"
gradientTransform="matrix(0.735969,0,0,0.735801,-2.052758,-16.66733)"
gradientUnits="userSpaceOnUse"
id="linearGradient1317-8"
xlink:href="#linearGradient2289-4"
inkscape:collect="always" />
<linearGradient
y2="19.001091"
x2="16.88862"
y1="77.796608"
x1="16.88862"
gradientTransform="matrix(0.545166,0,0,0.544959,0.186963,35.29511)"
gradientUnits="userSpaceOnUse"
id="linearGradient1337-8"
xlink:href="#linearGradient2289-4"
inkscape:collect="always" />
<linearGradient
y2="20.59322"
x2="72.348671"
y1="77.796608"
x1="16.88862"
gradientTransform="matrix(0.545166,0,0,0.544959,0.186963,35.29511)"
gradientUnits="userSpaceOnUse"
id="linearGradient1335-4"
xlink:href="#linearGradient2289-4"
inkscape:collect="always" />
<linearGradient
id="linearGradient2289-4">
<stop
id="stop2291-0"
offset="0"
style="stop-color:#ff2600;stop-opacity:1;" />
<stop
id="stop2293-9"
offset="1"
style="stop-color:#ffd600;stop-opacity:1;" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2289-4"
id="linearGradient3133"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.51445624,0,0,0.53856587,8.0977348,6.9450134)"
x1="46.881573"
y1="91.824585"
x2="48.19709"
y2="-1.4575793" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2289-4"
id="linearGradient3136"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.51445624,0,0,0.53856587,-120.3871,-29.360443)"
x1="16.88862"
y1="77.796608"
x2="72.348671"
y2="20.59322" />
<filter
id="filter3138"
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow">
<feFlood
id="feFlood3140"
flood-opacity="0.33"
flood-color="rgb(0,0,0)"
result="flood" />
<feComposite
id="feComposite3142"
in2="SourceGraphic"
in="flood"
operator="in"
result="composite1" />
<feGaussianBlur
id="feGaussianBlur3144"
in="composite"
stdDeviation="2"
result="blur" />
<feOffset
id="feOffset3146"
dx="4"
dy="1"
result="offset" />
<feComposite
id="feComposite3148"
in2="offset"
in="SourceGraphic"
operator="over"
result="composite2" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2289-4"
id="linearGradient3055"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.94969205,0,0,0.89326813,2.4216955,2.7025635)"
x1="31.372862"
y1="60.111893"
x2="30.769272"
y2="4.0104952" />
<filter
id="filter3057"
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow">
<feFlood
id="feFlood3059"
flood-opacity="0.33"
flood-color="rgb(0,0,0)"
result="flood" />
<feComposite
id="feComposite3061"
in2="SourceGraphic"
in="flood"
operator="in"
result="composite1" />
<feGaussianBlur
id="feGaussianBlur3063"
in="composite"
stdDeviation="2"
result="blur" />
<feOffset
id="feOffset3065"
dx="4"
dy="1"
result="offset" />
<feComposite
id="feComposite3067"
in2="offset"
in="SourceGraphic"
operator="over"
result="composite2" />
</filter>
<filter
id="filter3069"
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow">
<feFlood
id="feFlood3071"
flood-opacity="0.33"
flood-color="rgb(0,0,0)"
result="flood" />
<feComposite
id="feComposite3073"
in2="SourceGraphic"
in="flood"
operator="in"
result="composite1" />
<feGaussianBlur
id="feGaussianBlur3075"
in="composite"
stdDeviation="2"
result="blur" />
<feOffset
id="feOffset3077"
dx="4"
dy="1"
result="offset" />
<feComposite
id="feComposite3079"
in2="offset"
in="SourceGraphic"
operator="over"
result="composite2" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="8.0000001"
inkscape:cx="38.519547"
inkscape:cy="37.177925"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1270"
inkscape:window-height="972"
inkscape:window-x="619"
inkscape:window-y="10"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-maximized="0">
<inkscape:grid
type="xygrid"
id="grid3001" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Guglielmi David</dc:title>
</cc:Agent>
</dc:creator>
<cc:license
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
<dc:rights>
<cc:Agent>
<dc:title>Peter Zelezny</dc:title>
</cc:Agent>
</dc:rights>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
<cc:permits
rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits
rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires
rdf:resource="http://web.resource.org/cc/Notice" />
<cc:permits
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
<cc:requires
rdf:resource="http://web.resource.org/cc/ShareAlike" />
<cc:requires
rdf:resource="http://web.resource.org/cc/SourceCode" />
</cc:License>
</rdf:RDF>
</metadata>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1">
<path
inkscape:connector-curvature="0"
id="path4107"
d="m 32.154792,4.6214684 c -6.271873,0.05843 -14.928,0.744277 -16.110377,1.388109 C 13.679661,7.297237 0.77557733,29.32852 0.80334443,31.859522 c 0.02777,2.531005 13.46215957,24.293967 15.85468157,25.537309 2.392519,1.243342 29.481,1.287521 31.845753,-1.41e-4 C 50.868531,56.109028 63.897618,33.765246 63.869851,31.234242 63.842081,28.703238 50.157689,6.540262 47.765167,5.2969214 46.568907,4.6752504 38.426665,4.5630384 32.154792,4.6214684 z m 0.30429,8.4025596 c 4.90437,-0.047 9.661849,0.425368 10.597281,0.92538 1.870861,1.000021 10.667726,15.499216 10.689439,17.534904 C 53.767512,33.52 44.703434,48.643484 42.854286,49.67915 41.005138,50.714818 23.631044,50.742687 21.760184,49.742667 19.889321,48.742646 10.449106,33.795226 10.427392,31.759537 10.405682,29.72385 19.860508,15.185189 21.709656,14.14952 c 0.924575,-0.517833 5.845056,-1.078498 10.749426,-1.125492 z"
style="fill:#000000;fill-opacity:1;filter:url(#filter3057)"
sodipodi:nodetypes="ssssssssssssssss" />
<path
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccc"
id="path2297"
d="m 12.848737,18.660684 6.998916,-7.560243 12.488019,13.136676 12.867701,-13.261676 7.451909,7.435243 -13.544847,13.503584 13.341856,13.152864 -6.670928,6.94334 L 32.335672,39.351071 19.323785,52.010472 12.426724,45.086347 25.565591,32.039268 z"
style="fill:url(#linearGradient3133);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.31593215;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter3069)"
inkscape:transform-center-x="2.25"
inkscape:transform-center-y="2.25" />
<path
style="fill:url(#linearGradient3055);fill-opacity:1"
d="M 31.793607,5.7202825 C 24.936514,5.7854875 18.319304,6.2021256 17.026601,6.9206116 14.441196,8.3575834 2.2463386,29.063913 2.2766972,31.888398 2.3070579,34.712884 14.945039,54.814527 17.560803,56.20204 20.176566,57.589553 45.00941,57.359866 47.594814,55.922894 50.180219,54.485922 62.625078,34.154591 62.594719,31.330106 62.564358,28.505621 49.613876,7.8135634 46.998112,6.4260506 45.690231,5.732294 38.650699,5.6550774 31.793607,5.7202825 z m 0.18436,5.9275485 c 5.36199,-0.05245 10.575046,0.320704 11.597761,0.878694 2.045429,1.115978 11.686445,16.671419 11.710184,18.943154 0.02374,2.271736 -9.523004,18.3578 -11.544693,19.513557 -2.02169,1.155758 -20.789608,0.763657 -22.835036,-0.352353 C 18.86075,49.514938 8.8958589,34.166602 8.8721197,31.894866 8.8483797,29.62313 19.328834,13.7806 21.350523,12.624842 c 1.010846,-0.577879 5.26545,-0.924567 10.627444,-0.977011 z"
id="path3305"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssssssssssssss" />
<path
style="fill:none"
d="M 15.390198,55.682743 C 10.447144,47.360612 3.6450957,35.733851 3.6919881,35.686959 c 0.031272,-0.03127 0.5023581,0.289334 1.0468575,0.712459 0.5444994,0.423125 1.0414462,0.769317 1.1043264,0.769317 0.06288,0 2.6329414,4.276521 5.711247,9.50338 l 5.59692,9.503379 2.159128,0.007 2.159126,0.007 -0.34365,-0.584653 C 20.936937,55.28323 18.053514,50.518786 14.718339,45.017137 11.383164,39.515488 8.6543842,34.929294 8.6543842,34.825595 c 0,-0.103699 0.2455542,-0.59277 0.545676,-1.086823 0.3001218,-0.494053 0.545676,-0.941721 0.545676,-0.994816 0,-0.05309 -0.2788317,-0.09654 -0.619626,-0.09654 -0.8505388,0 -1.0953557,-0.488405 -1.0953557,-2.185211 0,-1.90734 -0.048411,-1.868066 2.3051195,-1.870072 l 1.982335,-0.0017 1.052375,-1.721616 c 0.578806,-0.94689 1.052375,-1.785869 1.052375,-1.8644 0,-0.07853 -0.829918,-0.162484 -1.844262,-0.186561 l -1.844263,-0.04378 4.480955,-7.327649 4.480953,-7.32765 12.466741,-0.0399 12.466738,-0.0399 0.517892,0.854518 0.517892,0.854518 2.335995,0.04287 2.335994,0.04287 2.742626,4.521316 c 1.508447,2.486723 4.136212,6.819001 5.839482,9.627283 1.703268,2.808283 3.157599,5.105969 3.231846,5.105969 0.256907,0 0.13186,-0.393635 -0.411085,-1.294044 -0.299901,-0.497351 -0.545275,-0.935841 -0.545275,-0.974422 0,-0.03858 0.310833,-0.07015 0.69074,-0.07015 0.575204,0 0.699074,-0.05324 0.740561,-0.318272 0.03599,-0.229934 0.273254,0.06215 0.854835,1.052375 0.702767,1.196557 0.780303,1.410253 0.610448,1.682462 -0.107012,0.171499 -0.377881,0.627528 -0.601929,1.013399 l -0.407361,0.701583 0.533953,0.857491 c 0.293674,0.47162 0.535536,0.950306 0.537472,1.063747 0.0019,0.113441 -3.098537,5.322698 -6.889942,11.576127 l -6.893462,11.36987 -16.876654,0 -16.876655,0 -1.226996,-2.065773 z"
id="path3077"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
height="64"
width="64">
<metadata>
<rdf:RDF>
<cc:Work>
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:creator>
<cc:Agent>
<dc:title>Guglielmi David</dc:title>
</cc:Agent>
</dc:creator>
<cc:license rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
<dc:rights>
<cc:Agent>
<dc:title>Peter Zelezny</dc:title>
</cc:Agent>
</dc:rights>
<dc:contributor>
<cc:Agent>
<dc:title>Samuel Messner</dc:title>
</cc:Agent>
</dc:contributor>
</cc:Work>
<cc:License rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
<cc:requires rdf:resource="http://web.resource.org/cc/Notice" />
<cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike" />
<cc:requires rdf:resource="http://web.resource.org/cc/SourceCode" />
<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
</cc:License>
</rdf:RDF>
</metadata>
<defs>
<linearGradient id="hexchatGradient" x1="0" y1="1" x2="0" y2="0">
<stop id="hgRedStop" offset="0" style="stop-color: #FF2600; stop-opacity: 1;" />
<stop id="hgYellowStop" offset="1" style="stop-color: #FFD600; stop-opacity: 1;" />
</linearGradient>
<filter inkscape:collect="always" id="dropshadow">
<feGaussianBlur inkscape:collect="always" stdDeviation="1.9736701" id="dropshadowGaussian" />
</filter>
</defs>
<path
style="fill: #000000; fill-opacity: 1;"
d="m 31.62506,4.4248023 c -7.285288,0.0713 -14.595323,0.526836 -15.96875,1.3125 C 12.909458,7.3086297 -0.0321942,29.523731 6.0185229e-5,32.612303 0.0323162,35.700876 13.470952,57.688808 16.25006,59.206053 c 2.779105,1.517245 29.159399,1.258827 31.90625,-0.3125 2.746852,-1.571328 15.688504,-23.786428 15.65625,-26.875 C 63.7803,28.929981 50.372918,6.9107967 47.59381,5.3935523 46.204258,4.6349293 38.910347,4.3535003 31.62506,4.4248023 z m -0.1875,9.2500007 c 3.386631,-0.03246 6.676687,0.05409 8.75,0.28125 l -8.71875,9.71875 -9.0625,-9.5 c 2.055746,-0.283043 5.521157,-0.466366 9.03125,-0.5 z m 17.34375,9.84375 c 2.298293,3.744897 4.302354,7.392556 4.3125,8.34375 0.01126,1.055883 -2.358157,5.507241 -4.875,9.6875 l -9.03125,-8.03125 z m -34.46875,0.25 8.75,9.75 -8.1875,7.875 c -2.482342,-3.992634 -4.707927,-8.110307 -4.71875,-9.125 -0.01021,-0.95736 1.927117,-4.687748 4.15625,-8.5 z m 17.15625,16.90625 9.8125,9.21875 c -4.111037,0.67314 -16.108253,0.781873 -19.46875,0.125 z"
id="outline"
sodipodi:nodetypes="ssssssssscccscsccccccsccccc" />
<path
style="fill: url(#hexchatGradient); fill-opacity: 1;"
d="m 31.25006,6.4873027 c -6.857093,0.06521 -13.707297,0.469014 -15,1.1875 -2.585405,1.4369712 -14.780358,21.7692653 -14.75,24.5937503 0.03036,2.824486 12.665486,22.924987 15.28125,24.3125 2.615763,1.387513 27.445846,1.186972 30.03125,-0.25 2.585405,-1.436972 14.780359,-21.769265 14.75,-24.59375 C 61.5322,28.912818 48.897074,8.7810649 46.28131,7.3935527 44.973429,6.6997957 38.107152,6.4220967 31.25006,6.4873027 z m 0.0625,5.0625003 c 5.36199,-0.05245 10.696035,0.19201 11.71875,0.75 0.06132,0.03346 0.143803,0.127745 0.21875,0.1875 l -11.28125,12.59375 -0.5,0.53125 -0.46875,-0.53125 -11.75,-12.3125 c 0.10903,-0.09884 0.228263,-0.201843 0.3125,-0.25 1.010846,-0.577879 6.38801,-0.916306 11.75,-0.96875 z m 18.0625,9.46875 c 2.883844,4.661341 5.612556,9.652893 5.625,10.84375 0.01348,1.290331 -3.064699,7.087557 -6.09375,12.09375 l -11.09375,-9.90625 -0.53125,-0.46875 0.5,-0.46875 11.59375,-12.09375 z m -35.78125,0.03125 10.84375,12.0625 0.4375,0.46875 -0.46875,0.4375 -10.28125,9.90625 c -3.04689,-4.86606 -6.049362,-10.36778 -6.0625,-11.625 -0.01271,-1.216102 2.689239,-6.451996 5.53125,-11.25 z m 17.875,17.78125 0.4375,0.4375 12.34375,11.59375 c -0.318014,0.365376 -0.587006,0.638955 -0.78125,0.75 -2.02169,1.155758 -21.423322,1.397228 -23.46875,0.28125 -0.228202,-0.124506 -0.601742,-0.47821 -1,-0.9375 l 12,-11.6875 0.46875,-0.4375 z"
id="coloredX" />
</svg>

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
data/icons/hexchat.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

BIN
data/icons/hexchat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

58
data/icons/hexchat.svg Normal file
View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xlink="http://www.w3.org/1999/xlink"
height="64"
width="64">
<metadata>
<rdf:RDF>
<cc:Work>
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:creator>
<cc:Agent>
<dc:title>Guglielmi David</dc:title>
</cc:Agent>
</dc:creator>
<cc:license rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
<dc:rights>
<cc:Agent>
<dc:title>Peter Zelezny</dc:title>
</cc:Agent>
</dc:rights>
<dc:contributor>
<cc:Agent>
<dc:title>Samuel Messner</dc:title>
</cc:Agent>
</dc:contributor>
</cc:Work>
<cc:License rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
<cc:requires rdf:resource="http://web.resource.org/cc/Notice" />
<cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike" />
<cc:requires rdf:resource="http://web.resource.org/cc/SourceCode" />
<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
</cc:License>
</rdf:RDF>
</metadata>
<defs>
<linearGradient id="hexchatGradient" x1="0" y1="0" x2="0" y2="1">
<stop id="hgYellowStop" offset="0" style="stop-color: #FFD600" />
<stop id="hgRedStop" offset="1" style="stop-color: #FF2600" />
</linearGradient>
</defs>
<use xlink:href="#outline" style="opacity:0.15" transform="translate(0,2)" id="shadow" />
<path
style="fill:#000000; fill-opacity: 1;"
d="M 31.71875,4.1088109 C 24.433462,4.1801109 17.123427,4.6356469 15.75,5.4213109 13.003148,6.9926379 0.06149557,29.207739 0.09374996,32.296311 0.12600597,35.384884 13.564642,57.372816 16.34375,58.890061 19.122855,60.407306 45.503149,60.148888 48.25,58.577561 50.996852,57.006233 63.938504,34.791133 63.90625,31.702561 63.87399,28.613989 50.466608,6.5948049 47.6875,5.0775609 46.297948,4.3189379 39.004037,4.0375089 31.71875,4.1088109 Z m -0.1875,9.2500001 c 3.386631,-0.03246 6.676687,0.05409 8.75,0.28125 l -8.71875,9.71875 -9.0625,-9.5 c 2.055746,-0.283043 5.521157,-0.466366 9.03125,-0.5 z m 17.34375,9.84375 c 2.298293,3.744897 4.302354,7.392556 4.3125,8.34375 0.01126,1.055883 -2.358157,5.507241 -4.875,9.6875 l -9.03125,-8.03125 z m -34.46875,0.25 8.75,9.75 -8.1875,7.875 c -2.482342,-3.992634 -4.707927,-8.110307 -4.71875,-9.125 -0.01021,-0.95736 1.927117,-4.687748 4.15625,-8.5 z m 17.15625,16.90625 9.8125,9.21875 c -4.111037,0.67314 -16.108253,0.781873 -19.46875,0.125 z"
id="outline" />
<path
style="fill:url(#hexchatGradient); fill-opacity: 1;"
d="m 31.34375,6.1713109 c -6.857093,0.06521 -13.707297,0.469014 -15,1.1875 C 13.758345,8.7957819 1.5633917,29.128076 1.5937497,31.952561 c 0.03036,2.824486 12.6654863,22.924987 15.2812503,24.3125 2.615763,1.387513 27.445846,1.186972 30.03125,-0.25 2.585405,-1.436972 14.780359,-21.769265 14.75,-24.59375 C 61.62589,28.596826 48.990764,8.4650729 46.375,7.0775609 45.067119,6.3838039 38.200842,6.1061049 31.34375,6.1713109 Z m 0.0625,5.0625001 c 5.36199,-0.05245 10.696035,0.19201 11.71875,0.75 0.06132,0.03346 0.143803,0.127745 0.21875,0.1875 l -11.28125,12.59375 -0.5,0.53125 -0.46875,-0.53125 -11.75,-12.3125 c 0.10903,-0.09884 0.228263,-0.201843 0.3125,-0.25 1.010846,-0.577879 6.38801,-0.916306 11.75,-0.96875 z m 18.0625,9.46875 c 2.883844,4.661341 5.612556,9.652893 5.625,10.84375 0.01348,1.290331 -3.064699,7.087557 -6.09375,12.09375 l -11.09375,-9.90625 -0.53125,-0.46875 0.5,-0.46875 11.59375,-12.09375 z m -35.78125,0.03125 10.84375,12.0625 0.4375,0.46875 -0.46875,0.4375 -10.28125,9.90625 c -3.04689,-4.86606 -6.0493623,-10.36778 -6.0625003,-11.625 -0.01271,-1.216102 2.6892393,-6.451996 5.5312503,-11.25 z m 17.875,17.78125 0.4375,0.4375 12.34375,11.59375 c -0.318014,0.365376 -0.587006,0.638955 -0.78125,0.75 -2.02169,1.155758 -21.423322,1.397228 -23.46875,0.28125 -0.228202,-0.124506 -0.601742,-0.47821 -1,-0.9375 l 12,-11.6875 0.46875,-0.4375 z"
id="coloredX" />
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

11
data/icons/meson.build Normal file
View File

@ -0,0 +1,11 @@
icondir = join_paths(get_option('datadir'), 'icons/hicolor')
install_data(
'hexchat.png',
rename: 'io.github.Hexchat.png',
install_dir: join_paths(icondir, '48x48/apps')
)
install_data(
'hexchat.svg',
rename: 'io.github.Hexchat.svg',
install_dir: join_paths(icondir, 'scalable/apps')
)

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
data/icons/tray_message.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
data/icons/tree_channel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

BIN
data/icons/tree_dialog.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

BIN
data/icons/tree_server.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 568 B

BIN
data/icons/tree_util.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 611 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 660 B

BIN
data/icons/ulist_halfop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

BIN
data/icons/ulist_netop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 593 B

BIN
data/icons/ulist_op.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 691 B

BIN
data/icons/ulist_owner.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 678 B

BIN
data/icons/ulist_voice.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 B

55
data/man/hexchat.1.in Normal file
View File

@ -0,0 +1,55 @@
.TH HEXCHAT "1" "April 2013" "HexChat @VERSION@" "User Commands"
.SH NAME
HexChat \- IRC Client
.SH DESCRIPTION
.SS "Usage:"
.IP
hexchat [OPTION...] URL
.SS "Help Options:"
.TP
\fB\-h\fR, \fB\-\-help\fR
Show help options
.TP
\fB\-\-help\-all\fR
Show all help options
.TP
\fB\-\-help\-gtk\fR
Show GTK+ Options
.SS "Application Options:"
.TP
\fB\-a\fR, \fB\-\-no\-auto\fR
Don't auto connect to servers
.TP
\fB\-d\fR, \fB\-\-cfgdir\fR=\fIPATH\fR
Use a different config directory
.TP
\fB\-n\fR, \fB\-\-no\-plugins\fR
Don't auto load any plugins
.TP
\fB\-p\fR, \fB\-\-plugindir\fR
Show plugin auto\-load directory
.TP
\fB\-u\fR, \fB\-\-configdir\fR
Show user config directory
.TP
\fB\-\-url\fR=\fIURL\fR
Open an irc://server:port/channel?key URL
.TP
\fB\-c\fR, \fB\-\-command\fR=\fICOMMAND\fR
Execute command:
.TP
\fB\-e\fR, \fB\-\-existing\fR
Open URL or execute command in an existing HexChat
.TP
\fB\-\-minimize\fR=\fIlevel\fR
Begin minimized. Level 0=Normal 1=Iconified 2=Tray
.TP
\fB\-v\fR, \fB\-\-version\fR
Show version information
.TP
\fB\-\-display\fR=\fIDISPLAY\fR
X display to use
.SH AUTHOR
This manual page was written by Davide Puricelli <evo@debian.org> for the Debian GNU/Linux system (but
may be used by others).

10
data/man/meson.build Normal file
View File

@ -0,0 +1,10 @@
man_conf = configuration_data()
man_conf.set('VERSION', meson.project_version())
configure_file(
input: 'hexchat.1.in',
output: 'hexchat.1',
configuration: man_conf,
install: true,
install_dir: join_paths(get_option('mandir'), 'man1')
)

11
data/meson.build Normal file
View File

@ -0,0 +1,11 @@
if get_option('plugin')
subdir('pkgconfig')
endif
if get_option('gtk-frontend')
subdir('icons')
subdir('misc')
subdir('man')
elif get_option('theme-manager')
subdir('misc')
endif

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="addon">
<id>io.github.Hexchat.Plugin.@NAME@</id>
<extends>io.github.Hexchat</extends>
<name>@NAME@ Plugin</name>
<summary>@SUMMARY@</summary>
<url type="homepage">https://hexchat.github.io/</url>
<project_license>@LICENSE@</project_license>
<metadata_license>CC0-1.0</metadata_license>
<update_contact>tingping_AT_fedoraproject.org</update_contact>
</component>

View File

@ -0,0 +1,7 @@
[Desktop Entry]
Name=HexChat Theme Manager
Exec=thememan %f
Icon=hexchat
Terminal=false
Type=Application
MimeType=application/x-hct;

View File

@ -0,0 +1,8 @@
<?xml version="1.0"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="application/x-hct">
<comment>HexChat theme archives</comment>
<icon name="hexchat" />
<glob pattern="*.hct" weight="100" />
</mime-type>
</mime-info>

View File

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>io.github.Hexchat</id>
<name>HexChat</name>
<launchable type="desktop-id">io.github.Hexchat.desktop</launchable>
<developer_name>HexChat</developer_name>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-2.0+</project_license>
<translation type="gettext">hexchat</translation>
<summary>IRC Client</summary>
<description>
<p>HexChat is an easy to use yet extensible IRC Client. It allows you to securely join multiple networks and talk to users privately or in channels using a customizable interface. You can even transfer files.</p>
<p>HexChat supports features such as: DCC, SASL, proxies, spellcheck, alerts, logging, custom themes, and Python/Perl scripts.</p>
</description>
<url type="homepage">http://hexchat.github.io</url>
<url type="bugtracker">https://github.com/hexchat/hexchat</url>
<url type="donation">https://goo.gl/jESZvU</url>
<url type="help">https://hexchat.readthedocs.io/en/latest/</url>
<screenshots>
<screenshot type="default">
<image>http://i.imgur.com/tLMguQz.png</image>
<caption>Main Chat Window</caption>
</screenshot>
</screenshots>
<provides>
<!-- Renamed from this -->
<id>hexchat.desktop</id>
</provides>
<releases>
<release date="2022-02-12" version="2.16.1">
<description>
<p>This is a minor release with mostly bug-fixes:</p>
<ul>
<li>Add `-NOOVERRIDE` flag to the `GUI COLOR` command</li>
<li>Add `-q` (quiet) flag to the `EXECWRITE` command</li>
<li>Rename installed icon to match app-id (Fixes notification icon)</li>
<li>Fix escaping already escaped URLs when opening them</li>
<li>Fix Python scripts not being opened as UTF-8</li>
<li>Fix `TIMER` command supporting decimals regardless of locale</li>
</ul>
</description>
</release>
<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>
<ul>
<li>Remove shift+click to close tab binding</li>
<li>Always unminimize when opening from tray</li>
<li>Fix some translations containing invalid text events</li>
<li>Fix sending server passwords starting with ":"</li>
</ul>
</description>
</release>
<release date="2018-03-13" version="2.14.1">
<description>
<p>This is a very minor bug-fix release:</p>
<ul>
<li>Fix performance regression</li>
</ul>
</description>
</release>
<release date="2018-03-10" version="2.14.0">
<description>
<p>This is largely a bug fix release though it has some large behind the scenes changes:</p>
<ul>
<li>Rename data files to use *io.github.Hexchat* name</li>
<li>Add option (irc_reconnect_rejoin) to disable auto-rejoin on reconnect</li>
<li>Add ability to set custom tray icon separate of app icon</li>
<li>Fix Enchant 2.0+ support</li>
<li>Fix input box theming with Adwaita-dark</li>
<li>Fix custom sounds not respecting omit if away option</li>
<li>Fix detecting if a tray doesn't exist on x11</li>
<li>Fix cutting off ctcp text after ending \01</li>
<li>Fix /ignore not accepting full hosts</li>
<li>Fix characters getting cut off when their width changes</li>
<li>Fix various possible crashes</li>
<li>Change preference window to be scroll-able</li>
<li>Remove ctrl+w binding by default</li>
<li>doat: Fix channels with / in them</li>
<li>fishlim: Fix key exchange</li>
<li>fishlim: Fix building against LibreSSL</li>
<li>sysinfo: Fix pci.ids file not being found on some distros</li>
<li>sysinfo: Make libpci optional</li>
<li>lua: Avoid loading the same script multiple times</li>
<li>Update translations</li>
</ul>
</description>
</release>
<release date="2016-12-10" version="2.12.4">
<description>
<p>This is another bug fix release:</p>
<ul>
<li>Fix issue with timers causing ping timeouts</li>
<li>Fix building against OpenSSL 1.1</li>
<li>Fix /exec output printing invalid utf8</li>
<li>Replace doat plugin with an internal command</li>
<li>Change how tab colors interact with plugins</li>
<li>Enable filtering the beep character by default</li>
</ul>
</description>
</release>
<release date="2016-10-22" version="2.12.3">
<description>
<p>This is a minor bug fix release just cleaning up a few issues:</p>
<ul>
<li>Fix crash with bad translations</li>
<li>Add new mhop command</li>
<li>Change ping timeout to 60 by default</li>
</ul>
</description>
</release>
</releases>
<kudos>
<kudo>UserDocs</kudo>
<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>

View File

@ -0,0 +1,19 @@
[Desktop Entry]
Name=HexChat
GenericName=IRC Client
Comment=Chat with other people online
Keywords=IM;Chat;
Exec=@exec_command@
Icon=io.github.Hexchat
Terminal=false
Type=Application
Categories=GTK;Network;IRCClient;
StartupNotify=true
StartupWMClass=Hexchat
X-GNOME-UsesNotifications=true
MimeType=x-scheme-handler/irc;x-scheme-handler/ircs;
Actions=SafeMode;
[Desktop Action SafeMode]
Name=Open Safe Mode
Exec=hexchat --no-auto --no-plugins

127
data/misc/meson.build Normal file
View File

@ -0,0 +1,127 @@
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('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',
po_dir: '../../po',
install: true,
install_dir: metainfodir
)
appstream_util = find_program('appstream-util', required: false)
if appstream_util.found()
test('Validate io.github.Hexchat.appdata.xml', appstream_util,
args: ['validate-relax', hexchat_appdata]
)
endif
endif
desktop_conf = configuration_data()
if dbus_glib_dep.found()
desktop_conf.set('exec_command', 'hexchat --existing %U')
else
desktop_conf.set('exec_command', 'hexchat %U')
endif
desktop_file = configure_file(
input: 'io.github.Hexchat.desktop.in.in',
output: 'io.github.Hexchat.desktop.in',
configuration: desktop_conf
)
hexchat_desktop = i18n.merge_file(
input: desktop_file,
output: 'io.github.Hexchat.desktop',
po_dir: '../../po',
type: 'desktop',
install: true,
install_dir: appdir
)
if desktop_utils.found()
test('Validate io.github.Hexchat.desktop', desktop_utils,
args: [hexchat_desktop]
)
endif
endif
if get_option('theme-manager')
htm_desktop = i18n.merge_file(
input: 'io.github.Hexchat.ThemeManager.desktop.in',
output: 'io.github.Hexchat.ThemeManager.desktop',
po_dir: '../../po',
type: 'desktop',
install: true,
install_dir: appdir
)
if desktop_utils.found()
test('Validate io.github.Hexchat.ThemeManager.desktop', desktop_utils,
args: [htm_desktop]
)
endif
install_data('io.github.Hexchat.ThemeManager.xml',
install_dir: join_paths(get_option('datadir'), 'mime/packages')
)
endif
if get_option('plugin')
plugin_metainfo = []
# FIXME: These should all get translated somewhere
if get_option('with-checksum')
plugin_metainfo += [
['Checksum', 'Calculates a checksum for all sent and recieved DCC files', 'MIT']
]
endif
if get_option('with-fishlim')
plugin_metainfo += [
['Fishlim', 'Allows setting a key for encrypted conversations', 'MIT AND GPL-2.0+']
]
endif
if get_option('with-lua') != 'false'
plugin_metainfo += [
['Lua', 'Provides a scripting interface in Lua', 'MIT']
]
endif
if get_option('with-perl') != 'false'
plugin_metainfo += [
['Perl', 'Provides a scripting interface in Perl', 'GPL-2.0+']
]
endif
if get_option('with-python') != 'false'
plugin_metainfo += [
['Python', 'Provides a scripting interface in Python', 'GPL-2.0+']
]
endif
if get_option('with-sysinfo')
plugin_metainfo += [
['Sysinfo', 'Adds command to display system information', 'GPL-2.0+']
]
endif
foreach metainfo : plugin_metainfo
name = metainfo[0]
conf = configuration_data()
conf.set('NAME', name)
conf.set('SUMMARY', metainfo[1])
conf.set('LICENSE', metainfo[2])
configure_file(
input: 'io.github.Hexchat.Plugin.metainfo.xml.in',
output: 'io.github.Hexchat.Plugin.@0@.metainfo.xml'.format(name),
configuration: conf,
install_dir: get_option('install-plugin-metainfo') ? metainfodir : '',
)
endforeach
endif

View File

@ -0,0 +1,9 @@
prefix=@prefix@
exec_prefix=${prefix}
includedir=@includedir@
hexchatlibdir=@hexchatlibdir@
Name: HexChat plugins
Description: Header and path for HexChat plugins
Version: @VERSION@
Cflags: -I${includedir}

View File

@ -0,0 +1,14 @@
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')))
configure_file(
input: 'hexchat-plugin.pc.in',
output: 'hexchat-plugin.pc',
configuration: pkg_conf,
install: true,
install_dir: join_paths(get_option('libdir'), 'pkgconfig'),
)

552
faq.html
View File

@ -1,552 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<title>HexChat FAQ</title>
<style type="text/css">
<!--
body {
font-family: sans-serif;
background-color: #FFFBF0;
}
h2 { color: #336701;
background-color: #F4F0E5;
}
h3 { color: #005A9C;
background-color: #F0EAE1;
}
a:link { color: blue; }
p { margin: 3% }
-->
</style>
</head>
<body>
<h1>HexChat 2.9 Frequently Asked Questions</h1>
<h2>1. Section One: Compiling and Installing.</h2>
<p>
<a href="#q11">1. I get this error: /bin/sh: no: command not found</a>
<br><br>
<a href="#q12">2. How do I compile HexChat on my Sun OS system?</a>
<br><br>
</p>
<h2>2. Section Two: Using HexChat.</h2>
<p>
<a href="#q21">1. How do I enable identd in HexChat? (How do I get rid of the ~ in front of my username?)</a>
<br><br>
<a href="#q22">2. How do I auto join more than one channel with keys?</a>
<br><br>
<a href="#q23">3. How do I autoconnect and join a channel when HexChat loads?</a>
<br><br>
<a href="#q24">4. How do I cut and paste in HexChat?</a>
<br><br>
<a href="#q25">5. How do I connect through a proxy?</a>
<br><br>
<a href="#q26">6. How do I show @ and + in front of nicknames that are Op and Voice when they talk?</a>
<br><br>
<a href="#q27">7. How do I change the Op and Voice userlist icons and Tree View icons?</a>
<br><br>
<a href="#q28">8. How do I set different ban types?</a>
<br><br>
<a href="#q29">9. Why can't I see accented-letters/umlauts/upper-ascii-chars in HexChat?</a>
<br><br>
<a href="#q210">10. Why does the timestamp overlap some nicknames?</a>
<br><br>
<a href="#q211">11. How do I turn on Conference mode where I will not see join or part messages?</a>
<br><br>
<a href="#q212">12. How can I run the /dccserver command?</a>
<br><br>
<a href="#q213">13. Why doesn't DCC send work behind a router (IPNat/ADSL)?</a>
<br><br>
<a href="#q214">14. How do I execute multiple commands in one line?</a>
<br><br>
<a href="#q215">15. How do I enable Emacs key bindings in HexChat?</a>
<br><br>
<a href="#q216">16. I get this error: "Unknown file type abc.yz. Maybe you need to install the Perl or Python plugin?"</a>
<br><br>
<a href="#q217">17. How do I play sound files on certain events?</a>
<br><br>
<a href="#q218">18. How do I auto-load scripts at startup?</a>
<br><br>
<a href="#q219">19. How do I minimize HexChat to the System Tray (Notification Area)?</a>
<br><br>
<a href="#q220">20. Can I select and copy text with the time stamps?</a>
<br><br>
<a href="#q221">21. What's the deal with opening URLs in HexChat on Linux/Unix?</a>
<br><br>
<a href="#q222">22. Where are the log files saved to?</a>
<br><br>
<a href="#q223">23. How do I rotate log files every so often?</a>
<br><br>
<a href="#q224">24. How do I enable graphical smilies (emoticons)?</a>
<br><br>
<a href="#q225">25. Where did the Real Name field go?</a>
<br><br>
</p>
<h2>3. Section Three: Contributions, Development and Bugs.</h2>
<p>
<a href="#q31">1. Why does HexChat leak so much memory?</a>
<br><br>
<a href="#q32">2. My copy of HexChat crashes, what can I do?</a>
<br><br>
<a href="#q33">3. Can I write a new language translation for HexChat?</a>
</p>
<br><br>
<h2>1. Section One: Compiling and Installing.</h2>
<br><h3><a name="q11">1. I get this error: /bin/sh: no: command not found</a></h3>
<p>
If you get an error something like:
</p>
<blockquote><pre>
Making all in po
make[2]: Entering directory `/home/zed/xchat/files/xchat-1.8.7/po'
file=./`echo ca | sed 's,.*/,,'`.gmo \
&amp;&amp; rm -f $file &amp;&amp; PATH=../src:$PATH no -o $file ca.po
/bin/sh: no: command not found
make[2]: *** [ca.gmo] Error 127
make[2]: Leaving directory `/home/zed/xchat/files/xchat-1.8.7/po'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/zed/xchat/files/xchat-1.8.7'
make: *** [all-recursive-am] Error 2
</pre></blockquote>
<p>
It means you don't have GNU gettext installed. There are two solutions:
</p>
<ul>
<li>Install GNU gettext and try again.</li>
<li>Use <i>./configure --disable-nls</i>. This will disable foreign
language support and all menus and GUI will be in English only.</li>
</ul>
<br><h3><a name="q12">2. How do I compile HexChat on my Sun OS system?</a></h3>
<p>
HexChat uses GNU gettext which in turn requires gmake, either install that
and or use ./configure --disable-nls with Sun's own make.
</p>
<br><h2>2. Section Two: Using HexChat.</h2>
<br><h3><a name="q21">1. How do I enable identd in HexChat?</a></h3>
<p>
<u>UNIX:</u><br>
Identd isn't actually apart of HexChat. You will need to download and install
your own ident server. Most distributions, including Fedora, come with an
ident server program called oidentd. Make sure it is enabled in
/etc/xinetd.conf or read you distribution's documentation.
As an alternative, you can try this experimental identd server: <a href="http://xchat.org/auth/">xchat_auth</a>
<br><br><u>WINDOWS:</u><br>
The win32 version of HexChat comes with a built-in identd server. It is
enabled by default, but can be disabled with <i>/set identd 0</i>.
</p>
<br><h3><a name="q22">2. How do I auto join more than one channel with keys?</a></h3>
<p>
In the Server list's channel column enter multiple channels and separate
them by commas, eg: "#linux,#warez,#chat". Do not put spaces between the
channels. If the channels also have keys (passwords), then the syntax is:
"#channel1,#channel2,#channel3 key1,key2,key3"
</p>
<p>
Example: If you want to join #abc and #talk without keys, but #linux with
a key of "secret", you would enter: "#linux,#abc,#talk secret".
</p>
<br><h3><a name="q23">3. How do I autoconnect and join a channel when HexChat loads?</a></h3>
<p>
In the Server list, select the Network you want to auto-connect to, click Edit
and turn ON the "Auto connect to this network at startup" checkbox.
</p>
<br><h3><a name="q24">4. How do I cut and paste in HexChat?</a></h3>
<p>
It's exactly the same as any other X application. You simply mark the text
you want, and then press middle mouse button to paste (if you only have a
2 button mouse, press left and right buttons at once).
</p>
<br><h3><a name="q25">5. How do I connect through a proxy?</a></h3>
<p>
Go to the menus, Settings -> Preferences -> Network Setup and fill in the requested
information there. Authentication (using a username and password) is
only supported for HTTP and Socks5.
</p>
<br><h3><a name="q26">6. How do I show @ and + in front of nicknames that are Op and Voice when they talk?</a></h3>
<p>
To display @ and + characters next to nicknames as they talk, do the following:
</p>
<p>
In the menus, open up Settings -> Advanced -> Text Events. Find the
<i>Channel Message</i> event in the list. The $3 code can be inserted to
print the user's mode-character (e.g. @ or +). For example, you might want
to change the default:
<br><br>%C18%H&lt;%H$4$1%H>%H%O$t$2<br><br>To:
<br><br>%C18%H&lt;%H$4<b>$3</b>$1%H>%H%O$t$2
<br><br>Don't forget to press Enter, so the changes take effect in the
list at the top of the window.
</p>
<br><h3><a name="q27">7. How do I change the Op and Voice userlist icons and Tree View icons?</a></h3>
<p>
<u>Unix/Linux</u>
<br>The default icons are hard coded (compiled) in. You can override them by creating
some PNG files in ${PREFIX}/share/hexchat. ${PREFIX} is usually /usr, so that
would translate to /usr/share/hexchat. If you compiled from source tarball without
specifying a prefix, it will be /usr/local instead.
<br>
<br>
<u>Windows</u>
<br>Your own custom icons can be placed in C:\Program Files\HexChat\Icons. Image format
may be PNG or ICO. PNG support on Windows 2000 may require installing GDI+, but it's
standard on XP or newer.
</p>
<blockquote>
<table border="1" cellpadding="3" rules="all">
<tr bgcolor="#dddddd"><td>Name</td><td>Description</td></tr>
<tr><td>op.png</td><td>Userlist: Op</td></tr>
<tr><td>hop.png</td><td>Userlist: Half-Op</td></tr>
<tr><td>voice.png</td><td>Userlist: Voice</td></tr>
<tr><td>red.png</td><td>Userlist: Owner</td></tr>
<tr><td>purple.png</td><td>Userlist: Founder</td></tr>
<tr><td></td><td></td></tr>
<tr><td>server.png</td><td>Tree: Server</td></tr>
<tr><td>channel.png</td><td>Tree: Channel</td></tr>
<tr><td>dialog.png</td><td>Tree: Dialog/Query</td></tr>
<tr><td>util.png</td><td>Tree: Utility (Channel List, DCC etc)</td></tr>
<tr><td></td><td></td></tr>
<tr><td>message.png</td><td>Tray: Message</td></tr>
<tr><td>highlight.png</td><td>Tray: Highlighted Message</td></tr>
<tr><td>fileoffer.png</td><td>Tray: DCC</td></tr>
<tr><td></td><td></td></tr>
<tr><td>hexchat.png</td><td>Main HexChat icon</td></tr>
</table>
</blockquote>
<br><b>Tree View icons</b>: Type <b>/set tab_icons 1</b> to enable them and then restart HexChat.
<br>
<br><h3><a name="q28">8. How do I set different ban types?</a></h3>
<p>
Three ways:
</p>
<ul>
<li>
Right click the nickname in the userlist, and choose a ban type from the
"Kick/Ban" submenu.
</li>
<li>
You can also do it manually:
/ban &lt;nick> &lt;ban type>
where the &lt;ban type> is a number from 0 to 3.
</li>
<li>
/set irc_ban_type &lt;ban type>
sets the default ban type to use for all bans. The different types are:
<ul>
<li>0 *!*@*.host</li>
<li>1 *!*@domain</li>
<li>2 *!*user@*.host</li>
<li>3 *!*user@domain</li>
</ul>
</li>
</ul>
<br><h3><a name="q29">9. Why can't I see accented-letters/umlauts/upper-ascii-chars in HexChat?</a></h3>
<p>
Refer to <a href="http://xchat.org/encoding/">http://xchat.org/encoding/</a>.<br>
Note: Log files are always written in UTF-8/Unicode.
</p>
<br><h3><a name="q210">10. Why does the timestamp overlap some nicknames?</a></h3>
<p>
Some networks allow very long nicknames (up to 32 letters). It can be annoying to have
the separator bar move too far to the right, just for one long nick. Therefore, it has
a set limit for the distance it will move to the right. If you use a large font, you
may need to adjust this distance. It is set in pixels, for example:
</p>
<blockquote><pre>
/set text_max_indent 320
</pre></blockquote>
<p>
Once you adjust this setting high enough, overlapping timestamps and nicknames should
not occur. The adjustment will not take effect immediately, a restart may be needed.
</p>
<br><h3><a name="q211">11. How do I turn on Conference mode where I will not see join or part messages?</a></h3>
<p>
Right-click on the tab you want to change. In the submenu of the channel
name, there's a toggle-item "Show join/part messages", simply turn this off.
</p><p>If you want to turn this option on globally, type:</p>
<blockquote><pre>/set irc_conf_mode 1</pre></blockquote>
<p>Then all channels you join after setting this will start with "Show join/part messages" turned off.</p>
<br><h3><a name="q212">12. How can I run the /dccserver command?</a></h3>
<p>
In short you can not do this (easily). This is a mIRC only proprietary feature
that is quite nonstandard. There is no code for doing this, mainly because
/dccserver runs on port 59 which in turn would require running HexChat as
root. Why do you need this anyway? Just use normal DCC.
<br><br>
Unofficial unix <a href="http://dfx.at/xchat/">patches are available here</a>.
<br><br><u><b>Update</b></u>: DCC Server feature has been added in the official Windows release 2.4.1b.
</p>
<br><h3><a name="q213">13. Why doesn't DCC send work behind a router (IPNat/ADSL)?</a></h3>
<p>
If you are behind a IP-NAT or ADSL router, you will most likely have
an address like 192.168.0.1. This address is not usable on the Internet, and
must be translated.
</p><p>
When offering a DCC file, HexChat will tell the receiver your address. If it says
192.168.0.1, the receiver will not be able to connect. One way to make it send
your "real" address is to enable the "Get my IP from IRC Server" option in HexChat.
This option is available in Preferences -> File Transfers. When you turn it
ON, you will have to re-login to the server before it'll take effect.
</p><p>
You will also need to forward some ports for use in DCC send. You may pick almost
any port range you wish, for example, in HexChat set:
</p>
<pre> <b>First DCC send port</b>: 4990
<b>Last DCC send port</b>: 5000
</pre>
<p>
This will allow you to send up to ten files at the same time, which should be plenty
for most people. Lastly, configure your router/modem to forward ports 4990-5000 to
your PC's address. You'll have to consult your router/modem's manual on how to do this.
</p>
<br><h3><a name="q214">14. How do I execute multiple commands in one line?</a></h3>
<p>
There are three ways to do this:
</p>
<ul>
<li>/LOAD -e &lt;textfile>, where &lt;textfile> is a full pathname to a file
containing commands on each line.</li>
<li>
Separate your commands with CTRL-SHIFT-u-a (CTRL-SHIFT-a on older GTK+ and Windows). This will appear as a little box with numbers on it.</li>
<li>You can create two UserCommands, with the same name, and then execute
the UserCommand. It will be executed in the same order as it's written
in the UserCommands GUI.</li>
</ul>
<br><h3><a name="q215">15. How do I enable Emacs key bindings in HexChat?</a></h3>
<p>
The standard Emacs key bindings, such as CTRL-w, CTRL-u etc, are supported by
GTK+ 2.0, but normally disabled. If you run Gnome 2, you can re-enable them in
your Gnome menu under: Preferences -> Keyboard Shortcuts.
</p>
<p>
<i>Note</i>: This doesn't work in the latest Gnome (2.8 and newer). In this case, you need
to run "gconf-editor", and directly change the key /desktop/gnome/interface/gtk_key_theme
from "Default" to "Emacs". Then you need to re-start HexChat.
</p>
<p>
If you don't use Gnome 2, but still want Emacs key bindings, it's beyond the
scope of this document. You might find some hints here:
<a href="http://www.gtk.org/gtk-2.4.0-notes.html">GTK+ 2.4.0 release notes</a>.
</p>
<br><h3><a name="q216">16. I get this error: "Unknown file type abc.yz. Maybe you need to install the Perl or Python plugin?"</a></h3>
<p>
If you get this error when trying to load a Perl or Python script, it means
the plugin for running those scripts isn't loaded.
</p>
<ul>
<li>The Perl, Python and TCL plugins come with HexChat in the same archive.</li>
<li>During ./configure, it will check for Perl, Python and TCL libs and headers, you should check if it failed there.</li>
<li>The plugins directory can be found by issuing the shell command
<pre>hexchat -p</pre>
</li>
<li>All *.so files are auto-loaded at startup (*.dll on Windows).</li>
<li>If you downloaded a binary package, maybe the packager decided to exclude the Perl or Python plugins.</li>
</ul>
<br><h3><a name="q217">17. How do I play sound files on certain events?</a></h3>
<p>
In the menus, go to: Settings > Preferences > Sound.
Select the event you want to make a sound on, then type in a
sound filename (or use the Browse button).
</p>
<br><h3><a name="q218">18. How do I auto-load scripts at startup?</a></h3>
<p>
You just have to place the scripts into HexChat's data directory. HexChat
will auto-load scripts if they have the right extension .e.g If a filename
ends in .pl, it will be loaded as a Perl script.
This data directory is different on each platform:
<br><br>
<u>Windows</u>
<br><br>
It depends on your version of Windows and where it stores the
<i><b>Application Data</b></i> folder. On Windows XP it is usually:
<br><br>
C:\Documents and Settings\<i><b>username</b></i>\Application Data\HexChat\
<br><b>or simply:</b>
<br>
C:\Program Files\HexChat\Plugins\
<br><br><br>
<u>UNIX</u>
<br><br>
~/.config/hexchat/
Where "~" represents your home directory i.e.: $HOME/.config/hexchat/
</p>
<br><h3><a name="q219">19. How do I minimize HexChat to the System Tray (Notification Area)?</a></h3>
<p>
There are two plugins available that allow this:
<br>Unix: <a href="http://www.blight.tk/">SysTray Plugin</a>
<br>Windows: <a href="http://www.sinisterdevelopments.com/">xTray</a>
</p>
<p>
Note that HexChat 2.8.0+ has its own tray feature, but you can disable it
in <b>Settings &gt; Preferences &gt; Alerts</b> and still run these plugins, if you prefer.
</p>
<br><h3><a name="q220">20. Can I select and copy text with the time stamps?</a></h3>
<p>
Yes, but this requires at least HexChat 2.6.3. Simply hold down SHIFT while marking
the text and the time stamps will be included.
</p>
<br><h3><a name="q221">21. What's the deal with opening URLs in HexChat on Unix/Linux?</a></h3>
<p>
Right-clicking on a URL and selecting <i>Open Link in Browser</i> will open the link
in your "preferred browser". In Gnome, your preferred browser can be changed in System > Preferences > More Preferences > Preferred Applications.
<br><br>
<b><u>Notes for 2.8.0 or newer:</u></b>
<br><br>
Everything should just work automatically without any changes from you. Here's how the current
logic works:
</p>
<ul>
<li>First, it tries to run xdg-open, which is a universal URL handler from freedesktop.org. Most modern Linux desktops will have this now, or in the near future.</li>
<li>If xdg-open doesn't exist, it will try to detect a running Gnome or KDE desktop. This is done via the environment variables GNOME_DESKTOP_SESSION_ID and KDE_FULL_SESSION.</li>
<li>If Gnome is detected, it will execute: gnome-open &lt;url></li>
<li>If KDE is detected, it will execute: kfmclient exec &lt;url></li>
</ul>
<p>
<b><u>Notes for 2.6.8 or older:</u></b>
<br><br>
If you're not using Gnome, e.g KDE or some other desktop environment, you're fresh out of luck!
<br><u>Note for Debian and Ubuntu</u>: Integration with Gnome is broken on this distro! Please set
<i>sensible-browser</i> instead. We have no control over what the Debian packagers do, so complain
to them for this screw up. Example:
<i>sudo update-alternatives --set x-www-browser /usr/bin/firefox</i>
<br><br>
<b><u>More details</u></b>
<br><br>
While holding down CTRL you can single left-click a URL to open it in your preferred browser. If you really want to change this to plain left-click you can type: <b>/set gui_url_mod 0</b>, provided you have HexChat 2.6.6 or newer.
<br><br>
You can also add more items to the right-click menu in HexChat: <b>Settings &gt; Advanced &gt; URL Handlers</b>.
<br>For example, you could add an entry like <b>!firefox -a firefox -remote 'openURL(%s,new-tab)'</b>
<br>But this kind of messing around shouldn't be necessary, it just works automatically in Gnome, KDE and Windows with 2.8.0+!
</p>
<br><h3><a name="q222">22. Where are the log files saved to?</a></h3>
<p>
<u>UNIX</u>
<br>
<br>~/.hexchat/logs/
<br>where ~ represents your home directory.
<br>
<br>
<br><u>Windows</u>
<br>
<br><b>Windows XP/2000</b>: C:\Documents and Settings\<i><b>username</b></i>\Application Data\HexChat\logs
<br><b>Windows Vista/7</b>: C:\Users\<i><b>username</b></i>\AppData\Roaming\HexChat\logs
</p>
<br><h3><a name="q223">23. How do I rotate log files every so often?</a></h3>
<p>
Requires: 2.6.1+
<br><br>
By default settings, no rotation occurs, your log files will just keep getting larger.
<br><br>
Go to <b>Settings</b> &gt; <b>Preferences</b> &gt; <b>Logging</b> and change the log filename to any one of these:
</p>
<blockquote>
<table border="1" cellpadding="6" rules="all">
<tr><td><b>Setting</b></td><td><b>Example filename that would be written</b></td></tr>
<tr><td>%Y-%m-%d/%n-%c.log&nbsp;</td><td>2006-12-30/FreeNode-#channel.log</td></tr>
<tr><td>%n/%Y-%m-%d/%c.log</td><td>FreeNode/2006-12-30/#channel.log</td></tr>
<tr><td>%n/%c.log</td><td>FreeNode/#channel.log (no rotation)</td></tr>
</table>
</blockquote>
<p>
%Y, %m and %d represents the current year, month and day respectively. %n is the
network name, e.g. "FreeNode" or "UnderNet", and finally, %c is the channel. In these
examples, a new log filename and folder would be created after midnight.
<br><br>
You can find more possibilities at <a href="http://xchat.org/docs/log/">http://xchat.org/docs/log/</a>.
</p>
<br><h3><a name="q224">24. How do I enable graphical smilies (emoticons)?</a></h3>
<p>
This feature is only available in the official Windows HexChat release. You have to
TICK this feature during installation. If you didn't do this, you can simply run
the installer again, and TICK the "<b>Eye Candy Theme</b>" when given the option.
</p><p>
If you want to use the graphical theme, but disable it just for smilies (i.e leave
it ON for things like Join/Part, Modes etc only), type this command and restart:
<br><br>
<b>/set text_emoticons off</b>
</p>
<br><h3><a name="q225">25. Where did the Real Name field go?</a></h3>
<p>
The real name field is now removed from the Network List. This is in order to avoid
alienating newcomers (some might be afraid of their personal data).
</p>
<p>
The network-specific real name can still be set via the GUI. If you want to modify
the global real name, just issue the following command:
</p>
<blockquote><pre>
/set irc_real_name Stewie Griffin
</pre></blockquote>
<br><h2>3. Section Three: Contributions, Development and Bugs.</h2>
<br><h3><a name="q31">1. Why does HexChat leak so much memory?</a></h3>
<p>
The simple answer is, it doesn't! There are some GTK+ pixmap based themes around that
leak a lot of memory. Please try using a different theme and see if that resolves the
problem. HexChat itself only allocates about 40kb of memory through malloc()!
</p>
<br><h3><a name="q32">2. My copy of HexChat crashes, what can I do?</a></h3>
<p>
Firstly, make sure it's the latest stable version of HexChat. Stable versions have
an EVEN middle number, e.g.: 2.8.0 or 2.8.1. Often late fixes are placed in this
directory: <a href="http://xchat.org/files/source/2.8/patches/">2.8.x patches</a>
</p><p>
If you still experience crashes, you should consider running it through GDB. This
will help us find a fix quickly, and it's easy to do! See <a href="http://xchat.org/gdb/">here</a>.
</p>
<br><h3><a name="q33">3. Can I write a new language translation for HexChat?</a></h3>
<p>
You sure can, but I don't accept translations directly. They must be done through the
<a href="http://translationproject.org/domain/xchat.html">Translation Project</a>.
All the relevant information should be on that page.
</p>
</body>
</html>

14
fedora-mingw64.ini Normal file
View File

@ -0,0 +1,14 @@
; dnf install mingw64-{gtk,openssl}
[binaries]
c = '/usr/bin/x86_64-w64-mingw32-gcc'
cpp = '/usr/bin/x86_64-w64-mingw32-g++'
ar = '/usr/bin/x86_64-w64-mingw32-gcc-ar'
strip = '/usr/bin/x86_64-w64-mingw32-strip'
pkgconfig = '/usr/bin/x86_64-w64-mingw32-pkg-config'
[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'x86_64'
endian = 'little'

View File

@ -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

View File

@ -0,0 +1,78 @@
{
"app-id": "io.github.Hexchat",
"branch": "stable",
"runtime": "org.gnome.Platform",
"runtime-version": "40",
"sdk": "org.gnome.Sdk",
"command": "hexchat",
"finish-args": [
"--share=ipc",
"--socket=x11",
"--share=network",
"--socket=pulseaudio",
"--filesystem=xdg-download",
"--talk-name=org.freedesktop.Notifications",
"--talk-name=org.mpris.MediaPlayer2.*"
],
"add-extensions": {
"io.github.Hexchat.Plugin": {
"version": "20.08",
"directory": "extensions",
"add-ld-path": "lib",
"merge-dirs": "lib/hexchat/plugins",
"subdirectories": true,
"no-autodownload": true,
"autodelete": true
}
},
"modules": [
"shared-modules/gtk2/gtk2.json",
"shared-modules/gtk2/gtk2-common-themes.json",
"shared-modules/dbus-glib/dbus-glib.json",
"shared-modules/lua5.3/lua-5.3.5.json",
"shared-modules/libcanberra/libcanberra.json",
"python3-cffi.json",
{
"name": "lgi",
"buildsystem": "meson",
"sources": [
{
"type": "git",
"url": "https://github.com/pavouk/lgi.git",
"commit": "95418635aa8151a516d43166227ea2b9d4c4403f"
}
]
},
{
"name": "hexchat",
"buildsystem": "meson",
"config-opts": [
"--buildtype=release",
"-Ddbus-service-use-appid=true",
"-Dwith-perl=false",
"-Dwith-lua=lua"
],
"build-options": {
"cflags": "-Wno-error=missing-include-dirs"
},
"cleanup": [
"/share/man"
],
"post-install": [
"install -d /app/extensions"
],
"sources": [
{
"type": "dir",
"path": ".."
},
{
"type": "patch",
"path": "Load-plugins-from-Flatpak-extensions.patch"
}
]
}
]
}

19
flatpak/python3-cffi.json Normal file
View File

@ -0,0 +1,19 @@
{
"name": "python3-cffi",
"buildsystem": "simple",
"build-commands": [
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"cffi\" --no-build-isolation"
],
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/0f/86/e19659527668d70be91d0369aeaa055b4eb396b0f387a4f92293a20035bd/pycparser-2.20.tar.gz",
"sha256": "2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/a8/20/025f59f929bbcaa579704f443a438135918484fffaacfaddba776b374563/cffi-1.14.5.tar.gz",
"sha256": "fd78e5fee591709f32ef6edb9a015b4aa1a5022598e36227500c8f4e02328d9c"
}
]
}

View File

@ -1,24 +0,0 @@
[Desktop Entry]
Encoding=UTF-8
Name=HexChat IRC
Name[zh_TW]=網路清談
Comment[de]=IRC-Client
Comment[es]=Aplicación de IRC
Comment[fi]=IRC-sovellus
Comment[fr]=Client IRC
Comment[hu]=IRC-kliens
Comment[lt]=IRC klientas
Comment[no]=IRC-klient
Comment[pl]=Klient IRC
Comment[pt_BR]=Cliente de IRC
Comment[sl]=Odjemalec IRC
Comment[sv]=IRC-klient
Comment[ro]=Client de IRC
Comment[zh_TW]=X-Chat 聊天程式
Comment=Chat with other people using Internet Relay Chat
Exec=hexchat
Icon=hexchat
Terminal=false
Type=Application
Categories=Network;
StartupNotify=true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -1,141 +0,0 @@
%define _default_patch_fuzz 2
%define gconf_version 2.14
Summary: A popular and easy to use graphical IRC (chat) client
Name: hexchat
Version: 2.8.8
Release: 0%{?dist}
Epoch: 1
Group: Applications/Internet
License: GPLv2+
URL: http://www.hexchat.org
Source: https://github.com/downloads/hexchat/hexchat/hexchat-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
# Patches 0-9 reserved for official xchat.org patches
BuildRequires: perl perl(ExtUtils::Embed) python-devel openssl-devel pkgconfig, tcl-devel
BuildRequires: GConf2-devel
BuildRequires: dbus-devel >= 0.60, dbus-glib-devel >= 0.60
BuildRequires: glib2-devel >= 2.10.0, gtk2-devel >= 2.10.0, bison >= 1.35
BuildRequires: gettext /bin/sed
BuildRequires: libtool
BuildRequires: libsexy-devel
BuildRequires: desktop-file-utils >= 0.10
# For gconftool-2:
Requires(post): GConf2 >= %{gconf_version}
Requires(preun): GConf2 >= %{gconf_version}
# Ensure that a compatible libperl is installed
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
Provides: hexchat-perl = %{epoch}:%{version}-%{release}
Obsoletes: hexchat-perl < %{epoch}:%{version}-%{release}
Provides: hexchat-python = %{epoch}:%{version}-%{release}
Obsoletes: hexchat-python < %{epoch}:%{version}-%{release}
%description
X-Chat is an easy to use graphical IRC chat client for the X Window System.
It allows you to join multiple IRC channels (chat rooms) at the same time,
talk publicly, private one-on-one conversations etc. Even file transfers
are possible.
This includes the plugins to run the Perl and Python scripts.
%package tcl
Summary: Tcl script plugin for X-Chat
Group: Applications/Internet
Requires: %{name} = %{epoch}:%{version}-%{release}
%description tcl
This package contains the X-Chat plugin providing the Tcl scripting interface.
%prep
%setup -q
%build
# Remove CVS files from source dirs so they're not installed into doc dirs.
find . -name CVS -type d | xargs rm -rf
export CFLAGS="$RPM_OPT_FLAGS $(perl -MExtUtils::Embed -e ccopts)"
export LDFLAGS=$(perl -MExtUtils::Embed -e ldopts)
%configure --disable-textfe \
--enable-gtkfe \
--enable-openssl \
--enable-python \
--enable-tcl=%{_libdir} \
--enable-ipv6 \
--enable-spell=libsexy \
--enable-shm
# gtkspell breaks Input Method commit with ENTER
make %{?_smp_mflags}
%install
%{__rm} -rf $RPM_BUILD_ROOT
%{__make} install DESTDIR=$RPM_BUILD_ROOT GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1
# Get rid of libtool archives
%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/hexchat/plugins/*.la
# Install the .desktop file properly
%{__rm} -f $RPM_BUILD_ROOT%{_datadir}/applications/hexchat.desktop
desktop-file-install --vendor="" \
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
--add-category=IRCClient \
--add-category=GTK hexchat.desktop
%find_lang %{name}
# do not Provide plugins .so
%define _use_internal_dependency_generator 0
%{__cat} << \EOF > %{name}.prov
#!%{_buildshell}
%{__grep} -v %{_docdir} - | %{__find_provides} $* \
| %{__sed} '/\.so\(()(64bit)\)\?$/d'
EOF
%define __find_provides %{_builddir}/%{name}-%{version}/%{name}.prov
%{__chmod} +x %{__find_provides}
%post
# Install schema
export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
gconftool-2 --makefile-install-rule /etc/gconf/schemas/apps_xchat_url_handler.schemas >& /dev/null || :
%pre
if [ "$1" -gt 1 ]; then
export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
gconftool-2 --makefile-uninstall-rule /etc/gconf/schemas/apps_xchat_url_handler.schemas >& /dev/null || :
fi
%preun
if [ "$1" -eq 0 ]; then
export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
gconftool-2 --makefile-uninstall-rule /etc/gconf/schemas/apps_xchat_url_handler.schemas >& /dev/null || :
fi
%clean
%{__rm} -rf $RPM_BUILD_ROOT
%files -f %{name}.lang
%defattr(-,root,root)
%doc README ChangeLog
%doc plugins/plugin20.html plugins/perl/hexchat-perl.html
%{_bindir}/hexchat
%dir %{_libdir}/hexchat
%dir %{_libdir}/hexchat/plugins
%{_libdir}/hexchat/plugins/perl.so
%{_libdir}/hexchat/plugins/python.so
%{_datadir}/applications/hexchat.desktop
%{_datadir}/pixmaps/*
%{_sysconfdir}/gconf/schemas/apps_xchat_url_handler.schemas
%{_datadir}/dbus-1/services/org.hexchat.service.service
%files tcl
%defattr(-,root,root)
%{_libdir}/hexchat/plugins/tcl.so

197
meson.build Normal file
View File

@ -0,0 +1,197 @@
project('hexchat', 'c',
version: '2.16.1',
meson_version: '>= 0.47.0',
default_options: [
'c_std=gnu89',
'buildtype=debugoptimized',
'warning_level=1',
]
)
i18n = import('i18n')
gnome = import('gnome')
cc = meson.get_compiler('c')
libgio_dep = dependency('gio-2.0', version: '>= 2.34.0')
libgmodule_dep = dependency('gmodule-2.0')
libcanberra_dep = dependency('libcanberra', version: '>= 0.22',
required: get_option('libcanberra'))
dbus_glib_dep = dependency('dbus-glib-1', required: get_option('dbus'))
global_deps = []
if cc.get_id() == 'msvc'
libssl_dep = cc.find_library('libssl')
else
libssl_dep = dependency('openssl', version: '>= 0.9.8',
required: get_option('tls'))
endif
config_h = configuration_data()
config_h.set_quoted('PACKAGE_VERSION', meson.project_version())
config_h.set_quoted('PACKAGE_NAME', meson.project_name())
config_h.set_quoted('GETTEXT_PACKAGE', 'hexchat')
config_h.set_quoted('LOCALEDIR', join_paths(get_option('prefix'),
get_option('datadir'), 'locale'))
config_h.set_quoted('G_LOG_DOMAIN', 'hexchat')
config_h.set10('ENABLE_NLS', true)
# Optional features
config_h.set('USE_OPENSSL', libssl_dep.found())
config_h.set('USE_LIBCANBERRA', libcanberra_dep.found())
config_h.set('USE_DBUS', dbus_glib_dep.found())
config_h.set('USE_PLUGIN', get_option('plugin'))
config_h.set('G_DISABLE_SINGLE_INCLUDES', true)
config_h.set('GTK_DISABLE_DEPRECATED', true)
config_h.set('GTK_DISABLE_SINGLE_INCLUDES', true)
config_h.set('GDK_PIXBUF_DISABLE_SINGLE_INCLUDES', true)
config_h.set('GLIB_VERSION_MAX_ALLOWED', 'GLIB_VERSION_2_34')
config_h.set('GLIB_VERSION_MIN_REQUIRED', 'GLIB_VERSION_2_34')
# Detected features
config_h.set('HAVE_MEMRCHR', cc.has_function('memrchr'))
config_h.set('HAVE_STRINGS_H', cc.has_header('strings.h'))
config_h.set_quoted('HEXCHATLIBDIR',
join_paths(get_option('prefix'), get_option('libdir'), 'hexchat/plugins')
)
if libssl_dep.found()
config_h.set('HAVE_X509_GET_SIGNATURE_NID',
cc.has_function('X509_get_signature_nid', dependencies: libssl_dep)
)
config_h.set('HAVE_SSL_CTX_GET_SSL_METHOD',
cc.has_function('SSL_CTX_get_ssl_method', dependencies: libssl_dep)
)
config_h.set('HAVE_DH_SET0_PQG',
cc.has_function('DH_set0_pqg', dependencies: libssl_dep)
)
config_h.set('HAVE_DH_GET0_KEY',
cc.has_function('DH_get0_key', dependencies: libssl_dep)
)
config_h.set('HAVE_DH_SET0_KEY',
cc.has_function('DH_set0_key', dependencies: libssl_dep)
)
config_h.set('HAVE_ERR_REMOVE_THREAD_STATE',
cc.has_function('ERR_remove_thread_state', dependencies: libssl_dep)
)
config_h.set('HAVE_ASN1_STRING_GET0_DATA',
cc.has_function('ASN1_STRING_get0_data', dependencies: libssl_dep)
)
endif
configure_file(output: 'config.h', configuration: config_h)
config_h_include = include_directories('.')
if host_machine.system() == 'windows'
add_project_arguments(
'-DWIN32',
'-DNTDDI_VERSION=NTDDI_WIN7',
'-D_WIN32_WINNT=_WIN32_WINNT_WIN7',
language: 'c')
endif
global_cflags = []
test_cflags = [
'-funsigned-char',
'-Wno-conversion',
'-Wno-pointer-sign',
'-Wno-padded',
'-Wno-unused-parameter',
'-Wno-missing-prototypes',
'-Winline',
'-Wstrict-prototypes',
'-Werror=implicit-function-declaration',
'-Werror=pointer-arith',
'-Werror=init-self',
['-Werror=format-security', '-Werror=format=1'],
'-Werror=missing-include-dirs',
'-Werror=date-time',
]
foreach cflag : test_cflags
if cc.has_multi_arguments(cflag)
global_cflags += cflag
endif
endforeach
if get_option('buildtype') != 'plain'
if cc.has_argument('-fstack-protector-strong') and cc.links('''
int main (void) {
char buffer[16];
strcpy(buffer, "foo");
return 0;
}
''', args: '-fstack-protector-all')
global_cflags += '-fstack-protector-strong'
if host_machine.system() == 'windows'
global_deps += cc.find_library('ssp')
endif
endif
endif
add_project_arguments(global_cflags, language: 'c')
global_ldflags = []
test_ldflags = [
'-Wl,-z,relro',
'-Wl,-z,now',
# mingw
'-Wl,--nxcompat',
]
if not (host_machine.system() == 'windows' and get_option('debug'))
test_ldflags += '-Wl,--dynamicbase'
endif
foreach ldflag : test_ldflags
if meson.version().version_compare('>= 0.46.0')
has_arg = cc.has_link_argument(ldflag)
else
has_arg = cc.has_argument(ldflag)
endif
if has_arg and cc.links('int main (void) { return 0; }', args: ldflag)
global_ldflags += ldflag
endif
endforeach
add_project_link_arguments(global_ldflags, language: 'c')
subdir('src')
if get_option('plugin')
subdir('plugins')
endif
if cc.get_id() != 'msvc'
subdir('data')
subdir('po') # FIXME: build xgettext
meson.add_install_script('meson_post_install.py',
'@0@'.format(get_option('theme-manager'))
)
endif
if meson.version().version_compare('>= 0.53.0')
summary({
'prefix': get_option('prefix'),
'bindir': get_option('bindir'),
'libdir': get_option('libdir'),
'datadir': get_option('datadir'),
}, section: 'Directories')
summary({
'TLS (openssl)': libssl_dep.found(),
'Plugin Support': get_option('plugin'),
'DBus Support': dbus_glib_dep.found(),
'libcanberra': libcanberra_dep.found(),
}, section: 'Features')
summary({
'Lua': get_option('with-lua'),
'Python': get_option('with-python'),
'Perl': get_option('with-perl'),
'Perl Legacy API': get_option('with-perl-legacy-api'),
'FiSH': get_option('with-fishlim'),
'Sysinfo': get_option('with-sysinfo'),
'DCC Checksum': get_option('with-checksum'),
}, section: 'Plugins')
endif

67
meson_options.txt Normal file
View File

@ -0,0 +1,67 @@
# Applications
option('gtk-frontend', type: 'boolean',
description: 'Main graphical interface'
)
option('text-frontend', type: 'boolean', value: false,
description: 'Text interface (not generally useful)'
)
option('theme-manager', type: 'boolean', value: false,
description: 'Utility to help manage themes, requires mono/.net'
)
# Features
option('tls', type: 'feature', value: 'enabled',
description: 'Support for TLS connections, requires openssl'
)
option('plugin', type: 'boolean',
description: 'Support for loadable plugins'
)
option('dbus', type: 'feature', value: 'auto',
description: 'Support used for single-instance and scripting interface, Unix only'
)
option('libcanberra', type: 'feature', value: 'auto',
description: 'Support for sound alerts, Unix only'
)
# Install options
option('dbus-service-use-appid', type: 'boolean', value: false,
description: 'Rename dbus service to match app-id, required for Flatpak'
)
option('install-appdata', type: 'boolean',
description: 'Install appdata files for app stores'
)
option('install-plugin-metainfo', type: 'boolean', value: false,
description: 'Installs metainfo files for enabled plugins, useful when distros create split packages'
)
# Plugins
option('with-checksum', type: 'boolean',
description: 'DCC checksum plugin'
)
option('with-exec', type: 'boolean',
description: '/exec plugin, Windows only'
)
option('with-fishlim', type: 'boolean',
description: 'Fish encryption plugin, requires openssl'
)
option('with-lua', type: 'string', value: 'luajit',
description: 'Lua scripting plugin, value is pkg-config name to use or "false"'
)
option('with-perl', type: 'string', value: 'perl',
description: 'Perl scripting plugin, value is path to perl executable or "false"'
)
option('with-python', type: 'string', value: 'python3',
description: 'Python scripting plugin. value is pkg-config name to use or "false"'
)
option('with-sysinfo', type: 'boolean',
description: 'System information plugin, requires libpci on Unix'
)
option('with-upd', type: 'boolean',
description: 'Update plugin, Windows only'
)
option('with-winamp', type: 'boolean',
description: 'Winamp plugin, Windows only'
)
option('with-perl-legacy-api', type: 'boolean', value: false,
description: 'Enables the legacy IRC perl module for compatibility with old scripts'
)

24
meson_post_install.py Normal file
View File

@ -0,0 +1,24 @@
#!/usr/bin/env python3
import os
import sys
import subprocess
prefix = os.environ.get('MESON_INSTALL_PREFIX', '/usr/local')
datadir = os.path.join(prefix, 'share')
with_thememan = sys.argv[1] == 'true'
# Packaging tools define DESTDIR and this isn't needed for them
if 'DESTDIR' not in os.environ:
print('Updating icon cache...')
subprocess.call(['gtk-update-icon-cache', '-qtf',
os.path.join(datadir, 'icons', 'hicolor')])
print('Updating desktop database...')
subprocess.call(['update-desktop-database', '-q',
os.path.join(datadir, 'applications')])
if with_thememan:
print('Updating mime database...')
subprocess.call(['update-mime-database',
os.path.join(datadir, 'mime')])

30
osx/Info.plist.in Normal file
View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>HexChat</string>
<key>CFBundleGetInfoString</key>
<string>@VERSION@</string>
<key>CFBundleIconFile</key>
<string>hexchat.icns</string>
<key>CFBundleIdentifier</key>
<string>org.hexchat</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>@VERSION@</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>@VERSION@</string>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>LSMinimumSystemVersion</key>
<string>10.4</string>
</dict>
</plist>

435
osx/gtkrc Normal file
View File

@ -0,0 +1,435 @@
# Mac Theme for Xamarin composed by Lanedo GmbH
# Copyright 2012 Xamarin Inc.
# Authors:
# Christian Kellner <christian.kellner@lanedo.com>
# Carlos Garnacho <carlos.garnacho@lanedo.com>
#
# Modified by HexChat
#
gtk-color-scheme =
"bg_color: #f5f5f5
fg_color: #000
base_color: #fff
text_color: #000
selected_bg_color: #0066FF
selected_fg_color: #fff
tooltip_bg_color: #fafaba
tooltip_fg_color: #000"
gtk-button-images = 0
gtk-menu-images = 0
gtk-toolbar-style = 0
gtk-enable-mnemonics = 0
gtk-icon-sizes = "gtk-small-toolbar=16,16:gtk-large-toolbar=22,22"
gtk-toolbar-icon-size = large-toolbar
gtk-auto-mnemonics = 1
gtk-error-bell = 0
gtk-show-input-method-menu = 0
gtk-key-theme-name="Mac"
style "default" {
xthickness = 1
ythickness = 1
### colours
bg[NORMAL] = @bg_color
bg[PRELIGHT] = @bg_color
bg[SELECTED] = @selected_bg_color
bg[INSENSITIVE] = @bg_color
bg[ACTIVE] = @bg_color
fg[NORMAL] = @fg_color
fg[PRELIGHT] = @fg_color
fg[SELECTED] = @selected_fg_color
fg[INSENSITIVE] = darker (@bg_color)
fg[ACTIVE] = @fg_color
text[NORMAL] = @text_color
text[PRELIGHT] = @text_color
text[SELECTED] = @selected_fg_color
text[INSENSITIVE] = darker (@bg_color)
text[ACTIVE] = @text_color
base[NORMAL] = @base_color
base[PRELIGHT] = @selected_bg_color
base[SELECTED] = @selected_bg_color
base[INSENSITIVE] = @bg_color
base[ACTIVE] = shade (1.3, @selected_bg_color)
### style properties
GtkWidget::new-tooltip-style = 1
GtkEntry::honors-transparent-bg-hint = 1
GtkEntry::inner-border = { 2, 2, 2, 2 }
GtkButton::child-displacement-x = 0
GtkButton::child-displacement-y = 0
GtkButton::default-border = { 0, 0, 0, 0 }
GtkButton::inner-border = { 2, 2, 4, 4 }
GtkButtonBox::child-min-width = 70
GtkButtonBox::child-min-height = 22
GtkTreeView::odd-row-color = "#f0f4f9"
GtkScrolledWindow::scrollbar-spacing = 0
GtkScrolledWindow::scrollbars-within-bevel = 1
GtkScale::slider-length = 14
GtkRange::trough-side-details = 1
GtkTreeView::expander-size = 8
GtkExpander::expander-size = 8
GtkComboBox::arrow-size = 12
GtkMenu::vertical-padding = 4
GtkMenuItem::horizontal-padding = 9
GtkMenuItem::toggle-spacing = 0
GtkSeparatorMenuItem::horizontal-padding = 2
engine "xamarin" {
arrowstyle = 2
rgba = TRUE
roundness = 3
glazestyle = 0
menustyle = 0
menuitemstyle = 0
menubaritemstyle = 0
comboboxstyle = 1
spinbuttonstyle = 1
colorize_scrollbar = FALSE
progressbarstyle = 0
trough_shades = { 0.842, 0.886 }
}
}
style "wide" = "default" {
xthickness = 2
ythickness = 2
}
style "wider" = "default" {
xthickness = 3
ythickness = 3
}
style "button" {
xthickness = 2
ythickness = 2
bg[NORMAL] = @bg_color
bg[PRELIGHT] = shade(1.1, @bg_color)
bg[ACTIVE] = @bg_color
bg[INSENSITIVE] = @bg_color
GtkWidget::focus-padding = 0
engine "quartz" {
}
}
style "combo-box-button" {
xthickness = 2
ythickness = 4
bg[NORMAL] = @base_color
bg[PRELIGHT] = shade(1.1, @base_color)
bg[ACTIVE] = @base_color
bg[INSENSITIVE] = @base_color
GtkWidget::focus-padding = 0
engine "xamarin" {
contrast = 1.0
gradient_shades = {0.99, 0.98, 0.97, 0.96}
focus_color = shade(0.6, @base_color)
textstyle = 1
}
}
style "dialog-button" = "default" {
xthickness = 3
ythickness = 2
font_name = "Lucida Grande 13"
GtkWidget::draw-border = { 2, 2, 2, 2 }
GtkWidget::focus-line-width = 1
GtkButton::inner-border = { 8, 8, 0, 3 }
engine "quartz" {
buttontype = "aqua"
}
}
style "toggle-button" = "button" {
bg[NORMAL] = @base_color
bg[PRELIGHT] = shade(0.98, @base_color)
}
style "menu" {
xthickness = 0
ythickness = 0
font_name = "Lucida Grande 14"
bg[PRELIGHT] = @selected_fg_color
fg[PRELIGHT] = @selected_fg_color
text[PRELIGHT] = @selected_fg_color
engine "quartz" {
}
}
style "menu-item" = "menu" {
ythickness = 2
GtkWidget::draw-border = { 0, 0, 0, 2 }
}
style "menu-separator" = "menu-item" {
ythickness = 3
}
style "toolbar" = "default"
{
bg[NORMAL] = "#ddd"
engine "xamarin" {
toolbarstyle = 2
}
}
style "toolbar-button"
{
engine "xamarin" {
contrast = 1.0
focus_color = @bg_color
}
}
style "tooltip"
{
xthickness = 5
ythickness = 5
fg[NORMAL] = @tooltip_fg_color
bg[NORMAL] = @tooltip_bg_color
engine "xamarin" {
roundness = 0
}
}
style "treeview" = "default"
{
GtkTreeView::odd-row-color = "#f5f5f5"
base[SELECTED] = "#2b5dcd"
base[ACTIVE] = "#cacaca"
text[SELECTED] = "#FFF"
text[ACTIVE] = "#000"
font_name = "Lucida Grande 12"
engine "quartz" {
}
}
style "tree-header"
{
ythickness = 0
bg[NORMAL] = "#f2f2f2"
font_name = "Lucida Grande 11"
GtkWidget::focus-line-width = 0
GtkWidget::draw-border = { 1, 1, 1, 1 }
GtkButton::inner-border = { 3, 3, 1, 3 }
engine "quartz" {
}
}
style "icon-view" = "default"
{
bg[SELECTED] = "#f5f7fa"
base[SELECTED] = "#f5f7fa"
fg[SELECTED] = "#000"
text[SELECTED] = "#000"
}
style "toolbar-combo-box" = "default"
{
fg[NORMAL] = "#616161"
text[NORMAL] = @fg_color
bg[NORMAL] = "#fff"
base[NORMAL] = "#fff"
ythickness = 4
xthickness = 2
engine "xamarin" {
comboboxstyle = 0
arrowstyle = 2
}
}
style "combo-box" = "default"
{
fg[NORMAL] = "#616161"
xthickness = 2
ythickness = 4
engine "xamarin" {
arrowstyle = 4
}
}
style "combo-box-entry" = "combo-box"
{
engine "xamarin" {
arrowstyle = 3
}
}
style "combo-box-label" = "combo-box"
{
fg[NORMAL] = "#595959"
}
style "combo-box-menu" = "menu" {
font_name = "Lucida Grande 12"
}
style "notebook" = "default"
{
GtkNotebook::tab-overlap = 1
#bg[ACTIVE] = @base_color
bg[NORMAL] = @base_color
engine "xamarin" {
gradient_shades = { 0.945, 0.945, 0.945, 0.685 }
}
}
style "radio-or-check-box"
{
ythickness = 6
#GtkCheckButton::indicator-size = 14
GtkCheckButton::indicator-spacing = 4
engine "quartz" {
}
}
style "entry" = "default"
{
xthickness = 2
ythickness = 2
GtkEntry::inner-border = { 2, 2, 2, 2 }
base[INSENSITIVE] = shade(1.02, @bg_color)
engine "quartz" {
}
}
style "search-entry" = "wider"
{
xthickness = 6
ythickness = 4
bg[NORMAL] = @base_color
}
style "scrollbar" = "default"
{
GtkScrollbar::has-forward-stepper = 0
GtkScrollbar::has-backward-stepper = 0
GtkRange::slider-width = 15
GtkRange::trough-border = 0
GtkRange::trough-side-details = 0
engine "quartz" {
}
}
style "progressbar" = "default"
{
engine "quartz" {
}
}
style "scrolled-window" = "default"
{
xthickness = 1
ythickness = 1
}
style "scale" = "default"
{
bg[SELECTED] = @selected_bg_color
engine "xamarin" {
roundness = 7
}
}
style "spin-button" = "wider"
{
fg[NORMAL] = "#616161"
ythickness = 4
GtkEntry::inner-border = { 2, 2, 1, 1 }
engine "xamarin" {
arrowstyle = 3
}
}
### Apply the styles
class "GtkWidget" style "default"
class "GtkEntry" style "entry"
class "GtkSpinButton" style "spin-button"
class "GtkFrame" style "wider"
class "GtkRange" style "wide"
class "GtkSeparator" style "wide"
class "GtkScrollbar" style "scrollbar"
class "GtkProgressBar" style "progressbar"
class "GtkScrolledWindow" style "scrolled-window"
class "GtkNotebook" style "notebook"
class "GtkButton" style "button"
class "GtkToggleButton" style "toggle-button"
class "GtkScale" style "scale"
#widget "*GtkEntry" style "entry"
widget "*search-entry*" style "search-entry"
widget "*GtkTextView" style "entry"
widget_class "<GtkDialog>*<GtkCheckButton>" style "radio-or-check-box"
widget_class "<GtkDialog>.<GtkVBox>.<GtkButtonBox>.<GtkButton>*" style "dialog-button"
widget_class "<GtkDialog>.<GtkVBox>.<GtkHBox>.<GtkButtonBox>.<GtkButton>*" style "dialog-button"
widget "*.toggleFindInFiles" style "toggle-button"
widget "*.toggleReplaceInFiles" style "toggle-button"
widget_class "*<GtkMenu>*" style "menu"
widget_class "*<GtkMenuItem>*" style "menu-item"
widget_class "*<GtkSeparatorMenuItem>" style "menu-separator"
widget "*.gtk-combobox-popup-menu*" style "combo-box-menu"
widget_class "*<GtkToolbar>*" style "toolbar"
widget_class "*ToolButton*" style "toolbar-button"
widget_class "*.<GtkTreeView>*" style "treeview"
widget_class "*.GtkTreeView.GtkButton" style "tree-header"
widget_class "*.GtkList.GtkButton" style "tree-header"
widget_class "*<GtkIconView>" style "icon-view"
widget_class "*.<GtkComboBox>.*" style "combo-box"
widget_class "*.<GtkComboBoxText>.*" style "combo-box-entry"
widget_class "*.<GtkComboBoxEntry>.*" style "combo-box-entry"
widget_class "*.<GtkComboBoxText>.<GtkEntry>" style "combo-box-entry"
widget_class "*.<GtkComboBoxEntry>.<GtkEntry>" style "combo-box-entry"
widget_class "*.<GtkComboBoxText>.<GtkToggleButton>" style "combo-box-button"
widget_class "*.<GtkComboBoxEntry>.<GtkToggleButton>" style "combo-box-button"
widget_class "*.<GtkComboBox>.*.GtkLabel" style "combo-box-label"
# Comboboxes within toolbars
widget_class "*.<GtkToolbar>.*.<GtkComboBox>.*" style "toolbar-combo-box"
widget "*MainToolbar*.GtkComboBox.*" style "toolbar-combo-box"
widget "gtk-tooltip*" style "tooltip"

68
osx/hexchat.bundle Normal file
View File

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<app-bundle>
<meta>
<prefix name="default">/usr/local</prefix>
<prefix name="enchant">/usr/local/opt/enchant-applespell</prefix>
<destination overwrite="yes">${project}</destination>
<run-install-name-tool/>
<launcher-script>${project}/launcher.sh</launcher-script >
<gtk>gtk+-2.0</gtk>
</meta>
<plist>${project}/Info.plist</plist>
<main-binary>
${prefix}/bin/hexchat
</main-binary>
<binary>
${prefix}/lib/hexchat/plugins/*.so
</binary>
<binary>
${prefix:enchant}/lib/libenchant.dylib
</binary>
<binary>
${prefix:enchant}/lib/enchant/libenchant_applespell.so
</binary>
<binary>
${prefix}/lib/${gtkdir}/modules/*.so
</binary>
<binary>
${prefix}/lib/${gtkdir}/${pkg:${gtk}:gtk_binary_version}/engines/libquartz.so
</binary>
<binary>
${prefix}/lib/${gtkdir}/${pkg:${gtk}:gtk_binary_version}/engines/libxamarin.so
</binary>
<binary>
${prefix}/lib/${gtkdir}/${pkg:${gtk}:gtk_binary_version}/printbackends/*.so
</binary>
<binary>
${prefix}/lib/gdk-pixbuf-2.0/${pkg:${gtk}:gtk_binary_version}/loaders/*.so
</binary>
<binary>
${prefix}/lib/pango/${pkg:pango:pango_module_version}/modules/
</binary>
<data>
${prefix}/share/themes/Mac/gtk-2.0-key/gtkrc
</data>
<translations name="gtk20">
${prefix}/share/locale
</translations>
<translations name="hexchat">
${prefix}/share/locale
</translations>
<data dest="${bundle}/Contents/Resources/etc/${gtkdir}/gtkrc">
${project}/gtkrc
</data>
<data dest="${bundle}/Contents/Resources">
${project}/hexchat.icns
</data>
</app-bundle>

BIN
osx/hexchat.icns Normal file

Binary file not shown.

174
osx/launcher.sh Executable file
View File

@ -0,0 +1,174 @@
#!/bin/sh
if test "x$GTK_DEBUG_LAUNCHER" != x; then
set -x
fi
if test "x$GTK_DEBUG_GDB" != x; then
EXEC="gdb --args"
else
EXEC=exec
fi
name=`basename "$0"`
tmp="$0"
tmp=`dirname "$tmp"`
tmp=`dirname "$tmp"`
bundle=`dirname "$tmp"`
bundle_contents="$bundle"/Contents
bundle_res="$bundle_contents"/Resources
bundle_lib="$bundle_res"/lib
bundle_bin="$bundle_res"/bin
bundle_data="$bundle_res"/share
bundle_etc="$bundle_res"/etc
export PREFIX="$bundle_res"
export DYLD_LIBRARY_PATH="$bundle_lib"
export XDG_CONFIG_DIRS="$bundle_etc"/xdg
export XDG_DATA_DIRS="$bundle_data"
export GTK_DATA_PREFIX="$bundle_res"
export GTK_EXE_PREFIX="$bundle_res"
export GTK_PATH="$bundle_res"
export GTK2_RC_FILES="$bundle_etc/gtk-2.0/gtkrc"
export GTK_IM_MODULE_FILE="$bundle_etc/gtk-2.0/gtk.immodules"
export GDK_PIXBUF_MODULE_FILE="$bundle_etc/gtk-2.0/gdk-pixbuf.loaders"
export PANGO_LIBDIR="$bundle_lib"
export PANGO_SYSCONFDIR="$bundle_etc"
export OPENSSL_CONF="/System/Library/OpenSSL/openssl.cnf"
export HEXCHAT_LIBDIR="$bundle_lib/hexchat/plugins"
APP=name
I18NDIR="$bundle_data/locale"
# Set the locale-related variables appropriately:
unset LANG LC_MESSAGES LC_MONETARY LC_COLLATE
# Has a language ordering been set?
# If so, set LC_MESSAGES and LANG accordingly; otherwise skip it.
# First step uses sed to clean off the quotes and commas, to change - to _, and change the names for the chinese scripts from "Hans" to CN and "Hant" to TW.
APPLELANGUAGES=`defaults read .GlobalPreferences AppleLanguages | sed -En -e 's/\-/_/' -e 's/Hant/TW/' -e 's/Hans/CN/' -e 's/[[:space:]]*\"?([[:alnum:]_]+)\"?,?/\1/p' `
if test "$APPLELANGUAGES"; then
# A language ordering exists.
# Test, item per item, to see whether there is an corresponding locale.
for L in $APPLELANGUAGES; do
#test for exact matches:
if test -f "$I18NDIR/${L}/LC_MESSAGES/$APP.mo"; then
export LANG=$L
break
fi
#This is a special case, because often the original strings are in US
#English and there is no translation file.
if test "x$L" == "xen_US"; then
export LANG=$L
break
fi
#OK, now test for just the first two letters:
if test -f "$I18NDIR/${L:0:2}/LC_MESSAGES/$APP.mo"; then
export LANG=${L:0:2}
break
fi
#Same thing, but checking for any english variant.
if test "x${L:0:2}" == "xen"; then
export LANG=$L
break
fi;
done
fi
unset APPLELANGUAGES L
# If we didn't get a language from the language list, try the Collation preference, in case it's the only setting that exists.
APPLECOLLATION=`defaults read .GlobalPreferences AppleCollationOrder`
if test -z ${LANG} -a -n $APPLECOLLATION; then
if test -f "$I18NDIR/${APPLECOLLATION:0:2}/LC_MESSAGES/$APP.mo"; then
export LANG=${APPLECOLLATION:0:2}
fi
fi
if test ! -z $APPLECOLLATION; then
export LC_COLLATE=$APPLECOLLATION
fi
unset APPLECOLLATION
# Continue by attempting to find the Locale preference.
APPLELOCALE=`defaults read .GlobalPreferences AppleLocale`
if test -f "$I18NDIR/${APPLELOCALE:0:5}/LC_MESSAGES/$APP.mo"; then
if test -z $LANG; then
export LANG="${APPLELOCALE:0:5}"
fi
elif test -z $LANG -a -f "$I18NDIR/${APPLELOCALE:0:2}/LC_MESSAGES/$APP.mo"; then
export LANG="${APPLELOCALE:0:2}"
fi
#Next we need to set LC_MESSAGES. If at all possilbe, we want a full
#5-character locale to avoid the "Locale not supported by C library"
#warning from Gtk -- even though Gtk will translate with a
#two-character code.
if test -n $LANG; then
#If the language code matches the applelocale, then that's the message
#locale; otherwise, if it's longer than two characters, then it's
#probably a good message locale and we'll go with it.
if test $LANG == ${APPLELOCALE:0:5} -o $LANG != ${LANG:0:2}; then
export LC_MESSAGES=$LANG
#Next try if the Applelocale is longer than 2 chars and the language
#bit matches $LANG
elif test $LANG == ${APPLELOCALE:0:2} -a $APPLELOCALE > ${APPLELOCALE:0:2}; then
export LC_MESSAGES=${APPLELOCALE:0:5}
#Fail. Get a list of the locales in $PREFIX/share/locale that match
#our two letter language code and pick the first one, special casing
#english to set en_US
elif test $LANG == "en"; then
export LC_MESSAGES="en_US"
else
LOC=`find $PREFIX/share/locale -name $LANG???`
for L in $LOC; do
export LC_MESSAGES=$L
done
fi
else
#All efforts have failed, so default to US english
export LANG="en_US"
export LC_MESSAGES="en_US"
fi
CURRENCY=`echo $APPLELOCALE | sed -En 's/.*currency=([[:alpha:]]+).*/\1/p'`
if test "x$CURRENCY" != "x"; then
#The user has set a special currency. Gtk doesn't install LC_MONETARY files, but Apple does in /usr/share/locale, so we're going to look there for a locale to set LC_CURRENCY to.
if test -f /usr/local/share/$LC_MESSAGES/LC_MONETARY; then
if test -a `cat /usr/local/share/$LC_MESSAGES/LC_MONETARY` == $CURRENCY; then
export LC_MONETARY=$LC_MESSAGES
fi
fi
if test -z "$LC_MONETARY"; then
FILES=`find /usr/share/locale -name LC_MONETARY -exec grep -H $CURRENCY {} \;`
if test -n "$FILES"; then
export LC_MONETARY=`echo $FILES | sed -En 's%/usr/share/locale/([[:alpha:]_]+)/LC_MONETARY.*%\1%p'`
fi
fi
fi
#No currency value means that the AppleLocale governs:
if test -z "$LC_MONETARY"; then
LC_MONETARY=${APPLELOCALE:0:5}
fi
#For Gtk, which only looks at LC_ALL:
export LC_ALL=$LC_MESSAGES
unset APPLELOCALE FILES LOC
if test -f "$bundle_lib/charset.alias"; then
export CHARSETALIASDIR="$bundle_lib"
fi
# Extra arguments can be added in environment.sh.
EXTRA_ARGS=
if test -f "$bundle_res/environment.sh"; then
source "$bundle_res/environment.sh"
fi
# Strip out the argument added by the OS.
if /bin/expr "x$1" : '^x-psn_' > /dev/null; then
shift 1
fi
$EXEC "$bundle_contents/MacOS/$name-bin" "$@" $EXTRA_ARGS

11
osx/makebundle.sh Executable file
View File

@ -0,0 +1,11 @@
#!/bin/sh
rm -rf HexChat.app
rm -f *.app.zip
python $HOME/.local/bin/gtk-mac-bundler hexchat.bundle
echo "Compressing bundle"
#hdiutil create -format UDBZ -srcdir HexChat.app -quiet HexChat-2.9.6.1-$(git rev-parse --short master).dmg
zip -9rXq ./HexChat-$(git describe --tags).app.zip ./HexChat.app

View File

@ -1,38 +0,0 @@
# Makefile stub for creating standalone plugin distributions.
plugin_dist: pg_dist pg_dist/config.status
pgi=`cd $(srcdir)/.. && pwd`; cd pg_dist; \
$(MAKE) $(AM_MAKEFLAGS) PLUGIN_INCLUDES=-I$$pgi distcheck dist
pg_dist: pg_distdir pg_dist/configure.in pg_dist/install-sh
cd pg_dist \
&& libtoolize --copy --force --automake \
&& automake --copy --add-missing --foreign \
&& autoconf -l ../$(top_srcdir)
pg_distdir: $(DISTFILES)
test -d pg_dist || mkdir pg_dist
for dfile in $(DISTFILES); do \
test -f $$dfile && cp $$dfile pg_dist \
|| test -f $(srcdir)/$$dfile && cp $(srcdir)/$$dfile pg_dist; done
sed '/Make.plugin/d' < $(srcdir)/Makefile.am > pg_dist/Makefile.am
pg_dist/configure.in: $(srcdir)/../plugin-conf.in
rm -f pg_dist/configure.in
test -f $(srcdir)/config.stub \
&& cat $(srcdir)/config.stub > pg_dist/configure.in || true
cat $(srcdir)/../plugin-conf.in | \
sed 's%@PLUGIN_VERSION@%$(PLUGIN_VERSION)%; \
s%@PLUGIN@%$(PLUGIN)%' >> pg_dist/configure.in
pg_dist/install-sh: pg_distdir
cp $(top_srcdir)/install-sh pg_dist
pg_dist/config.status: pg_dist/configure
cd pg_dist \
&& test -f config.status && $(SHELL) ./config.status --recheck \
|| $(SHELL) ./configure --enable-maintainer-mode
DISTCLEANFILES = pg_dist/* pg_dist
#

View File

@ -1,21 +0,0 @@
# temp. solution while mailcheck & xdcc arn't in SUBDIRS
EXTRA_DIST = plugin20.html Make.plugin plugin-conf.in \
xdcc/xdcc.c \
xdcc/Makefile.am
noinst_HEADERS = xchat-plugin.h
if DO_PYTHON
pythondir = python
endif
if DO_PERL
perldir = perl
endif
if DO_TCL
tcldir = tcl
endif
#SUBDIRS = . $(pythondir) $(perldir) mailcheck xdcc
SUBDIRS = . $(pythondir) $(perldir) $(tcldir)

View File

@ -20,221 +20,222 @@
* THE SOFTWARE.
*/
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <openssl/sha.h>
#include "config.h"
#include "xchat-plugin.h"
#include <stdlib.h>
#include <glib.h>
#include <glib/gstdio.h>
#include <gio/gio.h>
#include "hexchat-plugin.h"
#define BUFSIZE 32768
#define DEFAULT_LIMIT 256 /* default size is 256 MiB */
#define SHA256_DIGEST_LENGTH 32
#define SHA256_BUFFER_LENGTH 65
#ifndef snprintf
#define snprintf _snprintf
#endif
#ifndef stat64
#define stat64 _stat64
#endif
static xchat_plugin *ph; /* plugin handle */
static const char name[] = "Checksum";
static const char desc[] = "Calculate checksum for DCC file transfers";
static const char version[] = "3.0";
/* Use of OpenSSL SHA256 interface: http://adamlamers.com/?p=5 */
static void
sha256_hash_string (unsigned char hash[SHA256_DIGEST_LENGTH], char outputBuffer[65])
{
int i;
for (i = 0; i < SHA256_DIGEST_LENGTH; i++)
{
sprintf (outputBuffer + (i * 2), "%02x", hash[i]);
}
outputBuffer[64] = 0;
}
static hexchat_plugin *ph; /* plugin handle */
static char name[] = "Checksum";
static char desc[] = "Calculate checksum for DCC file transfers";
static char version[] = "3.1";
static void
sha256 (char *string, char outputBuffer[65])
set_limit (char *size)
{
int i;
unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_CTX sha256;
int limit = atoi (size);
SHA256_Init (&sha256);
SHA256_Update (&sha256, string, strlen (string));
SHA256_Final (hash, &sha256);
for (i = 0; i < SHA256_DIGEST_LENGTH; i++)
if (limit > 0 && limit < INT_MAX)
{
sprintf (outputBuffer + (i * 2), "%02x", hash[i]);
if (hexchat_pluginpref_set_int (ph, "limit", limit))
hexchat_printf (ph, "Checksum: File size limit has successfully been set to: %d MiB\n", limit);
else
hexchat_printf (ph, "Checksum: File access error while saving!\n");
}
else
{
hexchat_printf (ph, "Checksum: Invalid input!\n");
}
outputBuffer[64] = 0;
}
static int
sha256_file (char *path, char outputBuffer[65])
get_limit (void)
{
int bytesRead;
unsigned char *buffer;
unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_CTX sha256;
int size = hexchat_pluginpref_get_int (ph, "limit");
FILE *file = fopen (path, "rb");
if (size <= 0 || size >= INT_MAX)
return DEFAULT_LIMIT;
else
return size;
}
static gboolean
check_limit (GFile *file)
{
GFileInfo *file_info;
goffset file_size;
file_info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_SIZE, G_FILE_QUERY_INFO_NONE,
NULL, NULL);
if (!file_info)
return FALSE;
file_size = g_file_info_get_size (file_info);
g_object_unref (file_info);
if (file_size > get_limit () * 1048576ll)
return FALSE;
return TRUE;
}
static gboolean
sha256_from_stream (GFileInputStream *file_stream, char out_buf[])
{
GChecksum *checksum;
gssize bytes_read;
guint8 digest[SHA256_DIGEST_LENGTH];
gsize digest_len = sizeof(digest);
guchar buffer[BUFSIZE];
gsize i;
checksum = g_checksum_new (G_CHECKSUM_SHA256);
while ((bytes_read = g_input_stream_read (G_INPUT_STREAM (file_stream), buffer, sizeof (buffer), NULL, NULL)))
{
if (bytes_read == -1)
{
g_checksum_free (checksum);
return FALSE;
}
g_checksum_update (checksum, buffer, bytes_read);
}
g_checksum_get_digest (checksum, digest, &digest_len);
g_checksum_free (checksum);
for (i = 0; i < SHA256_DIGEST_LENGTH; i++)
{
/* out_buf will be exactly SHA256_BUFFER_LENGTH including null */
g_sprintf (out_buf + (i * 2), "%02x", digest[i]);
}
return TRUE;
}
static gboolean
sha256_from_file (char *filename, char out_buf[])
{
GFileInputStream *file_stream;
char *filename_fs;
GFile *file;
filename_fs = g_filename_from_utf8 (filename, -1, NULL, NULL, NULL);
if (!filename_fs)
{
hexchat_printf (ph, "Checksum: Invalid filename (%s)\n", filename);
return FALSE;
}
file = g_file_new_for_path (filename_fs);
g_free (filename_fs);
if (!file)
{
return -534;
hexchat_printf (ph, "Checksum: Failed to open %s\n", filename);
return FALSE;
}
SHA256_Init (&sha256);
buffer = malloc (BUFSIZE);
bytesRead = 0;
if (!buffer)
if (!check_limit (file))
{
return ENOMEM;
hexchat_printf (ph, "Checksum: %s is larger than size limit. You can increase it with /CHECKSUM SET.\n", filename);
g_object_unref (file);
return FALSE;
}
while ((bytesRead = fread (buffer, 1, BUFSIZE, file)))
file_stream = g_file_read (file, NULL, NULL);
if (!file_stream)
{
SHA256_Update (&sha256, buffer, bytesRead);
hexchat_printf (ph, "Checksum: Failed to read file %s\n", filename);
g_object_unref (file);
return FALSE;
}
SHA256_Final (hash, &sha256);
sha256_hash_string (hash, outputBuffer);
fclose (file);
free (buffer);
return 0;
}
static void
set_limit (char* size)
{
int buffer = atoi (size);
if (buffer > 0 && buffer < INT_MAX)
if (!sha256_from_stream (file_stream, out_buf))
{
if (xchat_pluginpref_set_int (ph, "limit", buffer))
{
xchat_printf (ph, "File size limit has successfully been set to: %d MiB\n", buffer);
}
else
{
xchat_printf (ph, "File access error while saving!\n");
}
hexchat_printf (ph, "Checksum: Failed to generate checksum for %s\n", filename);
g_object_unref (file_stream);
g_object_unref (file);
return FALSE;
}
else
{
xchat_printf (ph, "Invalid input!\n");
}
}
static int
get_limit ()
{
int size = xchat_pluginpref_get_int (ph, "limit");
if (size <= -1 || size >= INT_MAX)
{
return DEFAULT_LIMIT;
}
else
{
return size;
}
}
static void
print_limit ()
{
xchat_printf (ph, "File size limit for checksums: %d MiB", get_limit ());
g_object_unref (file_stream);
g_object_unref (file);
return TRUE;
}
static int
dccrecv_cb (char *word[], void *userdata)
{
int result;
struct stat64 buffer; /* buffer for storing file info */
char sum[65]; /* buffer for checksum */
const char *dcc_completed_dir;
char *filename, checksum[SHA256_BUFFER_LENGTH];
result = stat64 (word[2], &buffer);
if (result == 0) /* stat returns 0 on success */
{
if (buffer.st_size <= (unsigned long long) get_limit () * 1048576)
{
sha256_file (word[2], sum); /* word[2] is the full filename */
/* try to print the checksum in the privmsg tab of the sender */
xchat_set_context (ph, xchat_find_context (ph, NULL, word[3]));
xchat_printf (ph, "SHA-256 checksum for %s (local): %s\n", word[1], sum);
}
else
{
xchat_set_context (ph, xchat_find_context (ph, NULL, word[3]));
xchat_printf (ph, "SHA-256 checksum for %s (local): (size limit reached, no checksum calculated, you can increase it with /CHECKSUM INC)\n", word[1]);
}
}
/* Print in the privmsg tab of the sender */
hexchat_set_context (ph, hexchat_find_context (ph, NULL, word[3]));
if (hexchat_get_prefs (ph, "dcc_completed_dir", &dcc_completed_dir, NULL) == 1 && dcc_completed_dir[0] != '\0')
filename = g_build_filename (dcc_completed_dir, word[1], NULL);
else
filename = g_strdup (word[2]);
if (sha256_from_file (filename, checksum))
{
xchat_printf (ph, "File access error!\n");
hexchat_printf (ph, "SHA-256 checksum for %s (local): %s\n", word[1], checksum);
}
return XCHAT_EAT_NONE;
g_free (filename);
return HEXCHAT_EAT_NONE;
}
static int
dccoffer_cb (char *word[], void *userdata)
{
int result;
struct stat64 buffer; /* buffer for storing file info */
char sum[65]; /* buffer for checksum */
char checksum[SHA256_BUFFER_LENGTH];
result = stat64 (word[3], &buffer);
if (result == 0) /* stat returns 0 on success */
/* Print in the privmsg tab of the receiver */
hexchat_set_context (ph, hexchat_find_context (ph, NULL, word[3]));
if (sha256_from_file (word[3], checksum))
{
if (buffer.st_size <= (unsigned long long) get_limit () * 1048576)
{
sha256_file (word[3], sum); /* word[3] is the full filename */
xchat_commandf (ph, "quote PRIVMSG %s :SHA-256 checksum for %s (remote): %s", word[2], word[1], sum);
}
else
{
xchat_set_context (ph, xchat_find_context (ph, NULL, word[3]));
xchat_printf (ph, "quote PRIVMSG %s :SHA-256 checksum for %s (remote): (size limit reached, no checksum calculated)", word[2], word[1]);
}
}
else
{
xchat_printf (ph, "File access error!\n");
hexchat_commandf (ph, "quote PRIVMSG %s :SHA-256 checksum for %s (remote): %s", word[2], word[1], checksum);
}
return XCHAT_EAT_NONE;
return HEXCHAT_EAT_NONE;
}
static void
checksum (char *word[], void *userdata)
static int
checksum (char *word[], char *word_eol[], void *userdata)
{
if (!stricmp ("GET", word[2]))
if (!g_ascii_strcasecmp ("GET", word[2]))
{
print_limit ();
hexchat_printf (ph, "File size limit for checksums: %d MiB", get_limit ());
}
else if (!stricmp ("SET", word[2]))
else if (!g_ascii_strcasecmp ("SET", word[2]))
{
set_limit (word[3]);
}
else
{
xchat_printf (ph, "Usage: /CHECKSUM GET|INC|DEC\n");
xchat_printf (ph, " GET - print the maximum file size (in MiB) to be hashed\n");
xchat_printf (ph, " SET <filesize> - set the maximum file size (in MiB) to be hashed\n");
hexchat_printf (ph, "Usage: /CHECKSUM GET|SET\n");
hexchat_printf (ph, " GET - print the maximum file size (in MiB) to be hashed\n");
hexchat_printf (ph, " SET <filesize> - set the maximum file size (in MiB) to be hashed\n");
}
return HEXCHAT_EAT_ALL;
}
int
xchat_plugin_init (xchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg)
hexchat_plugin_init (hexchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg)
{
ph = plugin_handle;
@ -243,22 +244,22 @@ xchat_plugin_init (xchat_plugin *plugin_handle, char **plugin_name, char **plugi
*plugin_version = version;
/* this is required for the very first run */
if (xchat_pluginpref_get_int (ph, "limit") == -1)
if (hexchat_pluginpref_get_int (ph, "limit") == -1)
{
xchat_pluginpref_set_int (ph, "limit", DEFAULT_LIMIT);
hexchat_pluginpref_set_int (ph, "limit", DEFAULT_LIMIT);
}
xchat_hook_command (ph, "CHECKSUM", XCHAT_PRI_NORM, checksum, "Usage: /CHECKSUM GET|SET", 0);
xchat_hook_print (ph, "DCC RECV Complete", XCHAT_PRI_NORM, dccrecv_cb, NULL);
xchat_hook_print (ph, "DCC Offer", XCHAT_PRI_NORM, dccoffer_cb, NULL);
hexchat_hook_command (ph, "CHECKSUM", HEXCHAT_PRI_NORM, checksum, "Usage: /CHECKSUM GET|SET", NULL);
hexchat_hook_print (ph, "DCC RECV Complete", HEXCHAT_PRI_NORM, dccrecv_cb, NULL);
hexchat_hook_print (ph, "DCC Offer", HEXCHAT_PRI_NORM, dccoffer_cb, NULL);
xchat_printf (ph, "%s plugin loaded\n", name);
hexchat_printf (ph, "%s plugin loaded\n", name);
return 1;
}
int
xchat_plugin_deinit (void)
hexchat_plugin_deinit (void)
{
xchat_printf (ph, "%s plugin unloaded\n", name);
hexchat_printf (ph, "%s plugin unloaded\n", name);
return 1;
}

View File

@ -1,3 +1,3 @@
EXPORTS
xchat_plugin_init
xchat_plugin_deinit
hexchat_plugin_init
hexchat_plugin_deinit

View File

@ -1,5 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Configuration">
<PlatformToolset>v142</PlatformToolset>
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
@ -16,61 +20,19 @@
<RootNamespace>checksum</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>WDK7</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>WDK7</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\win32\hexchat.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\win32\hexchat.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<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>hcchecksum</TargetName>
<OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir>
<IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<TargetName>hcchecksum</TargetName>
<OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir>
<IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir>
<OutDir>$(HexChatRel)plugins\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level1</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;CHECKSUM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(DepsRoot)\include;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<AdditionalIncludeDirectories>$(DepsRoot)\include;$(Glib);..\..\src\common;$(HexChatLib);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<ModuleDefinitionFile>checksum.def</ModuleDefinitionFile>
<AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
@ -78,21 +40,10 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level1</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;CHECKSUM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(DepsRoot)\include;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;CHECKSUM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(DepsRoot)\include;$(Glib);..\..\src\common;$(HexChatLib);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<ModuleDefinitionFile>checksum.def</ModuleDefinitionFile>
<AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
@ -105,6 +56,4 @@
<None Include="checksum.def" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>

View File

@ -1,3 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>

View File

@ -0,0 +1,7 @@
shared_module('checksum', 'checksum.c',
dependencies: [libgio_dep, hexchat_plugin_dep],
install: true,
install_dir: plugindir,
name_prefix: '',
vs_module_defs: 'checksum.def',
)

View File

@ -1,329 +0,0 @@
/* XChat Win32 DNS Plugin
* Copyright (C) 2003-2004 Peter Zelezny.
* Copyright (C) 2012 Berke Viktor.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/*
* Requires MS Visual Studio and IPV6 headers to compile (run nmake).
* Compiling with gcc (mingw) will fail due to missing gai_strerror.
*/
#define DNS_VERSION "2.4"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#define USE_IPV6
#ifdef WIN32
#ifdef USE_IPV6
#include <winsock2.h>
#include <ws2tcpip.h>
#else
#include <winsock2.h>
#endif
#else
#include <unistd.h>
#include <netdb.h>
#include <sys/socket.h>
#endif
#include "xchat-plugin.h"
#include "thread.h"
#define HELP "Usage: DNS <nickname|hostname|numerical address>\n"
#define HEAD "\0034[DNS]\017\t"
#define PIPE_READ 0
#define PIPE_WRITE 1
#define MAX_HOSTNAME 128
static xchat_plugin *ph;
static thread *active_thread = NULL;
static int
waitline (void *source, char *buf, int bufsize)
{
int i = 0;
int len;
while(1)
{
len = 1;
/* we can't read() here, due to glib's giowin32 */
if(ph->xchat_read_fd(ph, source, buf + i, &len) != 0)
return -1;
if(buf[i] == '\n' || bufsize == i + 1)
{
buf[i] = 0;
return i;
}
i++;
}
}
static void *
thread_function (void *ud)
{
#ifdef USE_IPV6
struct addrinfo *ent;
struct addrinfo *cur;
struct addrinfo hints;
#else
struct hostent *ent;
#endif
thread *th = ud;
int fd = th->pipe_fd[PIPE_WRITE];
int ret;
char ipstring[MAX_HOSTNAME];
char reverse[MAX_HOSTNAME];
// int i;
active_thread = th;
#ifdef USE_IPV6
memset (&hints, 0, sizeof (hints));
hints.ai_family = PF_UNSPEC; /* support ipv6 and ipv4 */
hints.ai_flags = AI_CANONNAME;
// hints.ai_socktype = SOCK_STREAM;
ret = getaddrinfo (th->userdata, NULL, &hints, &ent);
if (ret != 0)
{
sprintf (ipstring, "1%d\n", ret); /* failed */
write (fd, ipstring, strlen (ipstring));
// Sleep (3000);
active_thread = NULL;
return 0;
}
// i = 0;
cur = ent;
while (cur)
{
/* find the numeric IP number */
ipstring[0] = 0;
getnameinfo (cur->ai_addr, cur->ai_addrlen,
ipstring, sizeof (ipstring), NULL, 0, NI_NUMERICHOST);
if (cur->ai_canonname)
{
/* force reverse lookup if canonname & ipstring are the same */
if (/*i == 0 &&*/ strcmp (cur->ai_canonname, ipstring) == 0)
goto lamecode;
}
if (cur->ai_canonname)
{
write (fd, "0", 1);
write (fd, ipstring, strlen (ipstring));
write (fd, "\n", 1);
write (fd, cur->ai_canonname, strlen (cur->ai_canonname));
} else
{
lamecode:
// ret = 1;
// if (i == 0)
{
/* reverse lookup */
reverse[0] = 0;
ret = getnameinfo (cur->ai_addr, cur->ai_addrlen,
reverse, sizeof (reverse), NULL, 0, NI_NAMEREQD);
}
write (fd, "0", 1);
write (fd, ipstring, strlen (ipstring));
write (fd, "\n", 1);
if (ret == 0)
write (fd, reverse, strlen (reverse));
}
write (fd, "\n", 1);
// i++;
cur = cur->ai_next;
}
/* tell the parent we're done */
write (fd, "2\n", 2);
freeaddrinfo (ent);
#else
ent = gethostbyname (th->userdata);
if (ent)
{
write (fd, "0", 1);
write (fd, ent->h_name, strlen (ent->h_name));
write (fd, "\n", 1);
write (fd, ent->h_name, strlen (ent->h_name));
write (fd, "\n", 1);
write (fd, "2\n", 2);
} else
{
write (fd, "10\n", 1);
}
#endif
// Sleep (3000);
active_thread = NULL; /* race condition, better than nothing */
return 0;
}
static int
dns_close_pipe (int fd)
{
close (fd);
return 0;
}
/* read messages comming from the child (through the pipe) */
static int
dns_read_cb (int fd, int flags, thread *th, void *source)
{
char buf[512];
char buf2[512];
while (waitline (source, buf, sizeof (buf)))
{
switch (buf[0])
{
case '0': /* got data to show */
waitline (source, buf2, sizeof (buf2));
if (buf2[0] == 0)
xchat_printf(ph, HEAD"\002Numerical\002: %s\n", buf + 1);
else
xchat_printf(ph, HEAD"\002Canonical\002: %s \002Numerical\002: %s\n", buf2, buf + 1);
return 1;
case '1': /* failed */
xchat_printf(ph, HEAD"Lookup failed. %s\n", gai_strerrorA (atoi (buf + 1)));
case '2': /* done */
// close (th->pipe_fd[PIPE_WRITE]);
// close (th->pipe_fd[PIPE_READ]);
xchat_hook_timer(ph, 3000, dns_close_pipe, (void *)th->pipe_fd[PIPE_WRITE]);
xchat_hook_timer(ph, 4000, dns_close_pipe, (void *)th->pipe_fd[PIPE_READ]);
free (th->userdata); /* hostname strdup'ed */
free (th);
return 0;
}
}
return 1;
}
/* find hostname from nickname (search the userlist, current chan only) */
static char *
find_nick_host (char *nick)
{
xchat_list *list;
char *at;
const char *host;
list = xchat_list_get (ph, "users");
if (!list)
return NULL;
while (xchat_list_next (ph, list))
{
if (stricmp (nick, xchat_list_str (ph, list, "nick")) == 0)
{
host = xchat_list_str (ph, list, "host");
if (host)
{
at = strrchr (host, '@');
if (at)
return at + 1;
}
break;
}
}
return NULL;
}
static int
dns_cmd_cb (char *word[], char *word_eol[], void *ud)
{
thread *th;
char *nickhost;
if (!word[2][0])
{
xchat_print (ph, HELP);
return XCHAT_EAT_ALL;
}
th = thread_new ();
if (th)
{
nickhost = find_nick_host (word[2]);
if (nickhost)
{
xchat_printf (ph, HEAD"Looking up %s (%s)...\n", nickhost, word[2]);
th->userdata = strdup (nickhost);
} else
{
xchat_printf (ph, HEAD"Looking up %s...\n", word[2]);
th->userdata = strdup (word[2]);
}
if (thread_start (th, thread_function, th))
{
xchat_hook_fd(ph, th->pipe_fd[PIPE_READ],
XCHAT_FD_READ | XCHAT_FD_EXCEPTION | XCHAT_FD_NOTSOCKET,
(void *)dns_read_cb, th);
}
}
return XCHAT_EAT_ALL;
}
int
xchat_plugin_deinit (xchat_plugin *plugin_handle)
{
while (active_thread) /* children will set this var to NULL soon... */
{
Sleep (1000);
}
xchat_printf (ph, "DNS plugin unloaded\n");
return 1;
}
int
xchat_plugin_init
(xchat_plugin *plugin_handle, char **plugin_name,
char **plugin_desc, char **plugin_version, char *arg)
{
/* we need to save this for use with any xchat_* functions */
ph = plugin_handle;
*plugin_name = "DNS";
*plugin_desc = "Threaded IPv4/6 DNS Command";
*plugin_version = DNS_VERSION;
xchat_hook_command(ph, "DNS", XCHAT_PRI_LOW, dns_cmd_cb, HELP, 0);
xchat_printf (ph, "DNS plugin loaded\n");
return 1; /* return 1 for success */
}

View File

@ -1,3 +0,0 @@
EXPORTS
xchat_plugin_init
xchat_plugin_deinit

View File

@ -1,114 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<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>{3786FA8C-3E76-45E3-984E-FCCFF44729C9}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>dns</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>WDK7</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>WDK7</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\win32\hexchat.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\win32\hexchat.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<TargetName>hcdns</TargetName>
<OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir>
<IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<TargetName>hcdns</TargetName>
<OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir>
<IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level1</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;DNS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>dns.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level1</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;DNS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>dns.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<None Include="dns.def" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="dns.c" />
<ClCompile Include="thread.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="thread.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,3 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>

View File

@ -1,33 +0,0 @@
#include <fcntl.h>
#include "thread.h"
thread *
thread_new (void)
{
thread *th;
th = calloc (1, sizeof (*th));
if (!th)
{
return NULL;
}
if (_pipe (th->pipe_fd, 4096, _O_BINARY) == -1)
{
free (th);
return NULL;
}
return th;
}
int
thread_start (thread *th, void *(*start_routine)(void *), void *arg)
{
DWORD id;
CloseHandle (CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE)start_routine, arg, 0, (DWORD *)&id));
th->threadid = id;
return 1;
}

View File

@ -1,11 +0,0 @@
#include <windows.h>
typedef struct
{
DWORD threadid;
int pipe_fd[2];
void *userdata;
} thread;
thread *thread_new (void);
int thread_start (thread *th, void *(*start_routine)(void *), void *arg);

View File

@ -1,94 +0,0 @@
/* This program is free software. It comes without any warranty, to
* the extent permitted by applicable law. You can redistribute it
* and/or modify it under the terms of the Do What The Fuck You Want
* To Public License, Version 2, as published by Sam Hocevar. See
* http://sam.zoy.org/wtfpl/COPYING or http://lwsitu.com/xchat/COPYING
* for more details. */
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "xchat-plugin.h"
static xchat_plugin *ph;
static int
parse_command( char *word[], char *word_eol[], void *userdata ) {
char *channel = NULL, *server = NULL, *token = NULL;
/* char *save_ptr1 = NULL;*/
char *str1 = NULL;
char *delimiter = NULL;
xchat_context *ctx = NULL;
if( word[2] != NULL && word[3] != NULL ) {
for( str1 = word[2]; ; str1 = NULL ) {
/* token = strtok_r( str1, ",", &save_ptr1 );*/
token = strtok( str1, "," );
/* printf( "token: %s\n", token );*/
if( token == NULL ) {
break;
}
channel = strdup( token );
delimiter = strchr( channel, '/' );
server = NULL;
if( delimiter != NULL ) {
*delimiter = '\0';
if( strlen( delimiter + 1 ) > 0 ) {
server = strdup( delimiter + 1 );
}
}
/* /Network form */
if( strlen( channel ) == 0 ) {
free( channel );
channel = NULL;
}
/* printf( "channel[%s] server[%s]\n", channel, server );*/
if( (ctx = xchat_find_context( ph, server, channel ) ) != NULL ) {
if( xchat_set_context( ph, ctx ) ) {
xchat_command( ph, word_eol[3] );
}
}
if( channel != NULL ) {
free( channel );
}
if( server != NULL ) {
free( server );
}
}
}
return XCHAT_EAT_XCHAT;
}
int
xchat_plugin_init( xchat_plugin * plugin_handle, char **plugin_name,
char **plugin_desc, char **plugin_version, char *arg ) {
ph = plugin_handle;
*plugin_name = "Do At";
*plugin_version = "1.0001";
*plugin_desc = "Perform an arbitrary command on multiple channels";
xchat_hook_command( ph, "doat", XCHAT_PRI_NORM, parse_command, "DOAT [channel,list,/network] [command], perform a command on multiple contexts", NULL );
xchat_print (ph, "Do At plugin loaded\n");
return 1;
}
int
xchat_plugin_deinit (void)
{
xchat_print (ph, "Do At plugin unloaded\n");
return 1;
}

View File

@ -1,3 +0,0 @@
EXPORTS
xchat_plugin_init
xchat_plugin_deinit

View File

@ -1,106 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<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>{4980AF24-9D42-427D-A8E6-0DF3B97C455D}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>doat</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>WDK7</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>WDK7</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\win32\hexchat.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\win32\hexchat.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<TargetName>hcdoat</TargetName>
<OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir>
<IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<TargetName>hcdoat</TargetName>
<OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir>
<IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level1</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;DOAT_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<ModuleDefinitionFile>doat.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level1</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;DOAT_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<ModuleDefinitionFile>doat.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="doat.c" />
</ItemGroup>
<ItemGroup>
<None Include="doat.def" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,3 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>

View File

@ -1,502 +0,0 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

View File

@ -1,231 +0,0 @@
/*
EasyWinampControl - A Winamp "What's playing" plugin for Xchat
Copyright (C) Yann HAMON & contributors
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "xchat-plugin.h"
#include <windows.h>
static xchat_plugin *ph; /* plugin handle */
static int enable = 1;
// For example, circularstrstr("winamp", "pwi", 3) would return 5 (the index of p)
int circularstrstr(char* a, char* b, int nb)
{
int equal = 1;
int length;
int pos=-1;
int i, j;
length = strlen(a);
for (i=0; i<length && pos == -1; ++i) {
equal = 1;
for (j=0; j<nb;j++) {
if (a[(i+j)%length] != b[j])
equal = 0;
}
if (equal == 1)
pos = i;
}
return pos;
}
void GetCurrentSongsName(HWND hwndWinamp, char* title, int titlesize)
{
int pos;
char *title2;
int i, j=0;
int length;
char *p;
GetWindowText(hwndWinamp, title, titlesize);
length = strlen(title);
if ((pos = circularstrstr(title, "- Winamp ***", 12)) != -1) {
// The option "scroll song title in taskbar" is on
title2 = (char*) malloc (titlesize*sizeof(char));
for (i=(pos+12)%length; i!=pos; i=(i+1)%length)
title2[j++] = title[i];
title2[j] = '\0';
p = title2;
while (p<title2+titlesize && *p != '.')
p++;
p+=2; // Delete the . and the following white space
strcpy(title, p);
free(title2);
}
else {
p = title;
while (p<title+titlesize && *p != '.')
p++;
p+=2; // Delete the . and the following white space
if (p<title+titlesize)
strncpy(title, p, titlesize-(p-title));
// Delete the trailing "- winamp"
p = title + titlesize - 1;
while (p>title && *p != '-') p--;
*p = '\0';
}
}
// Controlling winamp
static int wcmd_cb(char *word[], char *word_eol[], void *userdata)
{
// Everything's here : http://winamp.com/nsdn/winamp2x/dev/sdk/api.php
// The previous url seems dead, see http://forums.winamp.com/showthread.php?threadid=180297
HWND hwndWinamp = NULL;
if ((hwndWinamp = FindWindow("Winamp v1.x",NULL)) == NULL) {
xchat_print(ph, "Winamp's window not found - Is winamp really running?\n");
}
else {
if (strcmp(word[1], "") == 0)
xchat_print(ph, "Usage: wcmd [command]\n");
else if (strcmp(word[2], "next") == 0) {
xchat_print(ph, "Loading next song...\n");
SendMessage (hwndWinamp, WM_COMMAND, 40048, 0);
}
else if (strcmp(word[2], "prev") == 0) {
xchat_print(ph, "Loading previous song...\n");
SendMessage (hwndWinamp, WM_COMMAND, 40044, 0);
}
else if (strcmp(word[2], "play") == 0) {
xchat_print(ph, "Playin'...\n");
SendMessage (hwndWinamp, WM_COMMAND, 40045, 0);
}
else if (strcmp(word[2], "stop") == 0) {
xchat_print(ph, "Winamp stopped!...\n");
SendMessage (hwndWinamp, WM_COMMAND, 40047, 0);
}
else if (strcmp(word[2], "pause") == 0) {
SendMessage (hwndWinamp, WM_COMMAND, 40046, 0);
}
}
return XCHAT_EAT_ALL;
}
// Display current song
static int wp_cb(char *word[], char *word_eol[], void *userdata)
{
HWND hwndWinamp = NULL;
int bitrate, length, elapsed, minutes, seconds, eminutes, eseconds, samplerate, nbchannels;
char elapsedtime[7];
char totaltime[7];
char this_title[1024];
if ((hwndWinamp = FindWindow("Winamp v1.x",NULL)) == NULL)
xchat_print(ph, "Winamp's window not found - Is winamp really running?\n");
else {
//Winamp's running
// Seems buggy when winamp2's agent is running, and winamp not (or winamp3) -> crashes xchat.
SendMessage(hwndWinamp, WM_USER, (WPARAM)0, (LPARAM)125);
if ((samplerate = SendMessage(hwndWinamp, WM_USER, (WPARAM)0, (LPARAM)126)) == 0) {
xchat_print(ph, "Could not get current song's samplerate... !?\n");
return XCHAT_EAT_ALL;
}
if ((bitrate = SendMessage(hwndWinamp, WM_USER, (WPARAM)1, (LPARAM)126)) == 0) {
xchat_print(ph, "Could not get current song's bitrate... !?\n");
return XCHAT_EAT_ALL;
}
if ((nbchannels = SendMessage(hwndWinamp, WM_USER, (WPARAM)2, (LPARAM)126)) == 0) {
xchat_print(ph, "Could not get the number of channels... !?\n");
return XCHAT_EAT_ALL;
}
if ((length = SendMessage(hwndWinamp, WM_USER, (WPARAM)1, (LPARAM)105)) == 0) {
// Could be buggy when streaming audio or video, returned length is unexpected;
// How to detect is Winamp is streaming, and display ??:?? in that case?
xchat_print(ph, "Could not get current song's length... !?\n");
return XCHAT_EAT_ALL;
}
else {
minutes = length/60;
seconds = length%60;
if (seconds>9)
wsprintf(totaltime, "%d:%d", minutes, seconds);
else
wsprintf(totaltime, "%d:0%d", minutes, seconds);
}
if ((elapsed = SendMessage(hwndWinamp, WM_USER, (WPARAM)0, (LPARAM)105)) == 0) {
xchat_print(ph, "Could not get current song's elapsed time... !?\n");
return XCHAT_EAT_ALL;
}
else {
eminutes = (elapsed/1000)/60; /* kinda stupid sounding, but e is for elapsed */
eseconds = (elapsed/1000)%60;
if (eseconds>9)
wsprintf(elapsedtime, "%d:%d", eminutes, eseconds);
else
wsprintf(elapsedtime, "%d:0%d", eminutes, eseconds);
}
if ((bitrate = SendMessage(hwndWinamp, WM_USER, (WPARAM)1, (LPARAM)126)) == 0) {
xchat_print(ph, "Could not get current song's bitrate... !?\n");
return XCHAT_EAT_ALL;
}
GetCurrentSongsName(hwndWinamp, this_title, 1024);
xchat_commandf(ph, "dispcurrsong %d %d %d %s %s %s", samplerate, bitrate, nbchannels, elapsedtime, totaltime, this_title);
}
return XCHAT_EAT_ALL; /* eat this command so xchat and other plugins can't process it */
}
int xchat_plugin_init(xchat_plugin *plugin_handle,
char **plugin_name,
char **plugin_desc,
char **plugin_version,
char *arg)
{
/* we need to save this for use with any xchat_* functions */
ph = plugin_handle;
*plugin_name = "EasyWinampControl";
*plugin_desc = "Some commands to remotely control winamp";
*plugin_version = "1.2";
xchat_hook_command(ph, "wp", XCHAT_PRI_NORM, wp_cb,
"Usage: wp", 0);
xchat_hook_command(ph, "wcmd", XCHAT_PRI_NORM, wcmd_cb,
"Usage: wcmd [play|pause|stop|prev|next]", 0);
xchat_print(ph, "EasyWinampControl plugin loaded\n");
return 1; /* return 1 for success */
}
int xchat_plugin_deinit(void)
{
xchat_print(ph, "EasyWinampControl plugin unloaded\n");
return 1;
}

View File

@ -1,18 +0,0 @@
include "..\..\src\makeinc.mak"
all: ewc.obj ewc.def
link $(LDFLAGS) $(LIBS) /dll /out:xcewc.dll /def:ewc.def ewc.obj
ewc.def:
echo EXPORTS > ewc.def
echo xchat_plugin_init >> ewc.def
echo xchat_plugin_deinit >> ewc.def
ewc.obj: ewc.c makefile.mak
cl $(CFLAGS) ewc.c
clean:
del *.obj
del *.dll
del *.exp
del *.lib

View File

@ -23,12 +23,12 @@
#include <windows.h>
#include <time.h>
#include "xchat-plugin.h"
#include "hexchat-plugin.h"
static xchat_plugin *ph; /* plugin handle */
static const char name[] = "Exec";
static const char desc[] = "Execute commands inside HexChat";
static const char version[] = "1.1";
static hexchat_plugin *ph; /* plugin handle */
static char name[] = "Exec";
static char desc[] = "Execute commands inside HexChat";
static char version[] = "1.2";
static int
run_command (char *word[], char *word_eol[], void *userdata)
@ -41,6 +41,10 @@ run_command (char *word[], char *word_eol[], void *userdata)
time_t start;
double timeElapsed;
char *token;
char *context = NULL;
int announce = 0;
HANDLE readPipe;
HANDLE writePipe;
STARTUPINFO sInfo;
@ -51,15 +55,16 @@ run_command (char *word[], char *word_eol[], void *userdata)
secattr.nLength = sizeof (secattr);
secattr.bInheritHandle = TRUE;
timeElapsed = 0.0;
if (strlen (word[2]) > 0)
{
strcpy (commandLine, "cmd.exe /c ");
if (!stricmp("-O", word[2]))
{
/*strcat (commandLine, word_eol[3]);*/
xchat_printf (ph, "Printing Exec output to others is not supported yet.\n");
return XCHAT_EAT_XCHAT;
strcat (commandLine, word_eol[3]);
announce = 1;
}
else
{
@ -88,7 +93,19 @@ run_command (char *word[], char *word_eol[], void *userdata)
{
/* avoid garbage */
buffer[dwRead] = '\0';
xchat_printf (ph, "%s", buffer);
if (announce)
{
/* Say each line seperately, TODO: improve... */
token = strtok_s (buffer, "\n", &context);
while (token != NULL)
{
hexchat_commandf (ph, "SAY %s", token);
token = strtok_s (NULL, "\n", &context);
}
}
else
hexchat_printf (ph, "%s", buffer);
}
}
else
@ -98,25 +115,30 @@ run_command (char *word[], char *word_eol[], void *userdata)
}
timeElapsed = difftime (time (0), start);
}
/* display a newline to separate things */
if (!announce)
hexchat_printf (ph, "\n");
if (timeElapsed >= 10)
{
hexchat_printf (ph, "Command took too much time to run, execution aborted.\n");
}
CloseHandle (readPipe);
CloseHandle (pInfo.hProcess);
CloseHandle (pInfo.hThread);
}
/* display a newline to separate things */
xchat_printf (ph, "\n");
if (timeElapsed >= 10)
else
{
xchat_printf (ph, "Command took too much time to run, execution aborted.\n");
hexchat_command (ph, "help exec");
}
CloseHandle (readPipe);
CloseHandle (pInfo.hProcess);
CloseHandle (pInfo.hThread);
return XCHAT_EAT_XCHAT;
return HEXCHAT_EAT_HEXCHAT;
}
int
xchat_plugin_init (xchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg)
hexchat_plugin_init (hexchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg)
{
ph = plugin_handle;
@ -124,15 +146,15 @@ xchat_plugin_init (xchat_plugin *plugin_handle, char **plugin_name, char **plugi
*plugin_desc = desc;
*plugin_version = version;
xchat_hook_command (ph, "EXEC", XCHAT_PRI_NORM, run_command, "Usage: /EXEC [-O] - execute commands inside XChat", 0);
xchat_printf (ph, "%s plugin loaded\n", name);
hexchat_hook_command (ph, "EXEC", HEXCHAT_PRI_NORM, run_command, "Usage: /EXEC [-O] - execute commands inside HexChat", 0);
hexchat_printf (ph, "%s plugin loaded\n", name);
return 1; /* return 1 for success */
}
int
xchat_plugin_deinit (void)
hexchat_plugin_deinit (void)
{
xchat_printf (ph, "%s plugin unloaded\n", name);
hexchat_printf (ph, "%s plugin unloaded\n", name);
return 1;
}

View File

@ -1,3 +1,3 @@
EXPORTS
xchat_plugin_init
xchat_plugin_deinit
hexchat_plugin_init
hexchat_plugin_deinit

View File

@ -1,5 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Configuration">
<PlatformToolset>v142</PlatformToolset>
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
@ -16,81 +20,28 @@
<RootNamespace>exec</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>WDK7</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>WDK7</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\win32\hexchat.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\win32\hexchat.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<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>hcexec</TargetName>
<OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir>
<IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<TargetName>hcexec</TargetName>
<OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir>
<IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir>
<OutDir>$(HexChatRel)plugins\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level1</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;EXEC_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<ModuleDefinitionFile>exec.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level1</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;EXEC_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;EXEC_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<ModuleDefinitionFile>exec.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
@ -101,6 +52,4 @@
<ClCompile Include="exec.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>

Some files were not shown because too many files have changed in this diff Show More