42 Commits

Author SHA1 Message Date
Joseph Bisch
0840eaec7b Make split functions return an array with NULL instead of NULL
This avoids undefined behavior in functions that call these split
functions and expect an array back instead of just a NULL pointer.
2017-10-20 15:22:32 +02:00
Sebastian Thorarensen
f81a54b937 Try to split long lines on spaces
Try to split long lines on spaces to avoid words being splitted. This
can be turned off with the option `split_line_on_space'. The code
assumes that the terminal encoding has ASCII spaces.
2014-10-19 17:03:20 +02:00
Sebastian Thorarensen
1c73bde239 Fix minor coding style issues in message splitting 2014-07-06 23:24:10 +02:00
Sebastian Thorarensen
e6147fb8f2 Properly split long IRC messages
This commit adds handling of long IRC messages to the core. In contrast
to the `splitlong.pl' plugin, multi-byte encoded and recoded messages
are properly split.

To allow for this, a new function has been added to the server struct:
`split_message'. `split_message' returns a string array with the message
splitted to substrings of a length that the server can handle. If a
protocol module doesn't have any limit, it can simply return a singleton
array with a copy of the message.

The `MSG' chat command now calls `split_message' before `send_message',
and emits `message own_public' / `message own_private' with each
substring, so that the string splitting will be visible in the UI.

`split_message' in the IRC module uses `recode_split' which in turn uses
iconv to properly split multi-byte encoded (and recoded) messages.
2014-07-06 23:24:09 +02:00
Emanuele Giaquinta
a8680fb7da Amend fix for bug #392, assume utf-8 encoding for an ascii string in
which no escape character occurs.


git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4928 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-11-29 10:45:58 +00:00
Emanuele Giaquinta
d6be6b9cff Factor code to check if a string is ascii only into a function.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4926 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-11-28 23:01:45 +00:00
Emanuele Giaquinta
21abb51130 Cache charset related data rather than computing it everytime recode_{in,out}
is called.


git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4862 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-06-10 22:49:00 +00:00
Emanuele Giaquinta
e2362f7884 Partly revert r4796, it is not a bug but by design that
recode_fallback is honored only when the terminal encoding is utf-8.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4799 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-04-05 17:07:37 +00:00
Emanuele Giaquinta
68763eb4e8 Cosmetics.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4797 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-04-05 13:11:22 +00:00
Emanuele Giaquinta
76fb9b6ac2 Fix logic in recode_in:
Honour recode_fallback also when the terminal encoding is not utf-8.
Return the string as it is when the terminal encoding is utf-8, the
string is valid utf-8, and the first conversion failed, rather than
trying again the same conversion.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4796 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-04-05 13:07:26 +00:00
Emanuele Giaquinta
7df46597e1 Use g_ascii_str{,n}casecmp for case insensitive comparison with
ascii only strings.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4738 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-03-09 12:01:16 +00:00
Emanuele Giaquinta
ffe5bd6930 Remove trailing whitespace.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4705 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-02-04 15:30:38 +00:00
Emanuele Giaquinta
cce9683658 Simplify is_valid_charset by just checking with g_iconv_open that the
conversion is supported.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4665 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-12-09 16:10:07 +00:00
Emanuele Giaquinta
afa4292466 Farewell glib-1.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4509 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-20 23:13:29 +00:00
Emanuele Giaquinta
9dc678e1d3 Factor common code in recode_{in,out}.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4499 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-18 14:41:44 +00:00
Wouter Coekaerts
9c2d621cc6 Oops. Update address correctly now.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4490 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-08 18:41:10 +00:00
Wouter Coekaerts
023026e12b Update FSF address
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4489 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-08 18:16:58 +00:00
Emanuele Giaquinta
2b2b904ada Do not call iconfig_get_str when target is NULL.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4487 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-06 16:22:09 +00:00
Emanuele Giaquinta
ef0cc3feca Reindent.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4405 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-01-06 16:08:29 +00:00
Emanuele Giaquinta
646e3ecb5d Remove the target != NULL constraint in recode_out.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4404 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-01-06 16:00:45 +00:00
Emanuele Giaquinta
721650c300 Simplify.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4403 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-01-06 15:52:22 +00:00
Emanuele Giaquinta
66ae6d0876 Cosmetic.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4372 dbcabf3a-b0e7-0310-adc4-f8d773084564
2006-09-20 23:47:20 +00:00
Emanuele Giaquinta
a7b0e6b3f2 Make compilation of is_translit conditional on glib-2.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4369 dbcabf3a-b0e7-0310-adc4-f8d773084564
2006-09-20 23:11:17 +00:00
Emanuele Giaquinta
3cdf50170f Add public is_utf8 function by refactoring existing code.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4368 dbcabf3a-b0e7-0310-adc4-f8d773084564
2006-09-20 23:04:40 +00:00
Valentin Batz
da965109ed Don't assume that 7bit ascii strings are encoded in UTF-8, only validate the strings when they contain octest with highest bit set. (patch by Mikko Rauhala)
fixes http://bugs.irssi.org/index.php?do=details&id=392

git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4300 dbcabf3a-b0e7-0310-adc4-f8d773084564
2006-07-25 11:02:10 +00:00
Timo Sirainen
342141fcb2 If transliterations don't work in the system (eg. Solaris), don't allow
recode_transliterate setting to be enabled.



git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4082 dbcabf3a-b0e7-0310-adc4-f8d773084564
2005-11-19 18:13:18 +00:00
Timo Sirainen
2e75479637 Default recode_transliterate to yes
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4079 dbcabf3a-b0e7-0310-adc4-f8d773084564
2005-11-19 16:15:55 +00:00
Valentin Batz
68e4516d0b changed recode_fallback to CP1252
added recode_autodetect_utf8, it's on by default
removed settings_remove calls from recode_deinit since I don't see any other internal module doing it


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4067 dbcabf3a-b0e7-0310-adc4-f8d773084564
2005-11-07 19:06:42 +00:00
Valentin Batz
0b8a23ad63 fixed a bug in recode when target is NULL and really use the recoded string for printing
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4042 dbcabf3a-b0e7-0310-adc4-f8d773084564
2005-10-16 11:16:33 +00:00
Wouter Coekaerts
c701330433 Don't crash with /me in dcc, or dcc message on disconnected server, with recode (Bug 330)
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4033 dbcabf3a-b0e7-0310-adc4-f8d773084564
2005-10-10 10:04:51 +00:00
Valentin Batz
240a7df160 Forgot to add the additional parameter to g_convert_with_fallback (This always happens when I'm applying patches manually :( )
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3882 dbcabf3a-b0e7-0310-adc4-f8d773084564
2005-07-24 20:01:06 +00:00
Valentin Batz
56041a3144 Added an option to specify a charset for a whole network. For example /recode add IRCnet iso-8859-1 (http://bugs.irssi.org/index.php?do=details&id=284) Patch by Sergey Safonov. Replaced g_convert by g_convert_with_fallback in recode_in (http://bugs.irssi.org/index.php?do=details&id=241) Patch by Kuang-che Wu.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3881 dbcabf3a-b0e7-0310-adc4-f8d773084564
2005-07-24 19:16:14 +00:00
Valentin Batz
eefd999fa4 Added a new boolean setting 'recode' to provide an opportunity to turn off recode completely
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3805 dbcabf3a-b0e7-0310-adc4-f8d773084564
2005-06-29 07:47:45 +00:00
Valentin Batz
b5f93b6164 call setlocale(LC_ALL, ) once in fe-text/irssi.c and not everytime recode_get_charset() is called in recode.c
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3703 dbcabf3a-b0e7-0310-adc4-f8d773084564
2005-01-12 16:40:44 +00:00
Valentin Batz
f4c1b605ed call setlocale(LC_ALL, ) before g_get_charset to properly return the user's charset
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3702 dbcabf3a-b0e7-0310-adc4-f8d773084564
2005-01-12 12:10:48 +00:00
Valentin Batz
8b772ff6ec Fixed target handling in recode_out
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3693 dbcabf3a-b0e7-0310-adc4-f8d773084564
2004-12-20 15:06:29 +00:00
Valentin Batz
7be7dd374c Added <tag>/<target> support for recode.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3692 dbcabf3a-b0e7-0310-adc4-f8d773084564
2004-12-20 13:59:15 +00:00
Valentin Batz
a26038c664 Changed the order of recode_out_default_charset, it doesn't override /recode add anymore. The string returned by nl_langinfo(CODESET) may be empty, use ISO8859-1 in this case
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3306 dbcabf3a-b0e7-0310-adc4-f8d773084564
2004-09-20 12:45:49 +00:00
Valentin Batz
19ca0eb059 Forgot g_free(translit_to); in recode_in
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3304 dbcabf3a-b0e7-0310-adc4-f8d773084564
2004-09-18 03:42:59 +00:00
Valentin Batz
8ea717b676 Fixed memleak in recode.c, fixed typo in special_vars.txt, fixed bug 105, fixed bug 106
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3295 dbcabf3a-b0e7-0310-adc4-f8d773084564
2004-09-15 12:11:43 +00:00
Timo Sirainen
82052118a7 Bug #104 recode treats multibyte jp characters as utf8. Patch by Valentin
Batz


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3285 dbcabf3a-b0e7-0310-adc4-f8d773084564
2004-08-21 07:05:16 +00:00
Timo Sirainen
df9f46cf4d forgot to add
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3284 dbcabf3a-b0e7-0310-adc4-f8d773084564
2004-08-20 00:27:05 +00:00