103 Commits

Author SHA1 Message Date
Ailin Nemui
7d13cfba07 add a meta table to all lines 2021-08-12 23:48:37 +02:00
Ailin Nemui
030da3ec9c add format_string_expand and format_string_unexpand methods to Perl 2021-03-14 19:00:22 +01:00
ailin-nemui
d535a79730 implement server-time 2021-02-25 10:41:05 +01:00
ailin-nemui
4330dbec62 add "print format" signal to perl
fix syntax in signals.txt with regards to GLists

simplify signal emit code
2020-05-13 00:22:38 +02:00
ailin-nemui
8fd6dccaf1 enable mirc colour processing 2020-04-28 15:46:53 +02:00
ailin-nemui
f95fc81130 make lines reformattable
- completely removed the old textbuffer representation (
  https://github.com/shabble/irssi-docs/wiki/Notes-256-Colour#textbuffer-encoding
  )

- textbuffer-formats is an extra module, so if we unhook the signals it
  should go back to the "old way" of storing pre-rendered tex

- design uses cache, original formats and list of arguments
2020-04-26 18:54:16 +02:00
ailin-nemui
7e6e1f2e10 Use full paths to includes 2019-05-01 22:08:45 +02:00
Will Storey
81f3d6dbc1 Comment colour code meaning 2018-10-08 20:40:37 -07:00
ailin-nemui
a19b503a31 properly record line info on empty lines 2018-08-21 00:31:12 +02:00
ailin-nemui
631650bd8a
Revert "record line info on empty lines" 2018-05-07 21:22:43 +02:00
ailin-nemui
34b31e8451 record line info on empty lines 2018-04-16 16:22:04 +02:00
ailin-nemui
451019d05d make format_real_length left-collecting 2018-01-06 00:26:48 +01:00
ailin-nemui
47400d405a
Update formats.c
remove now useless check for ,
2017-11-20 14:17:15 +01:00
ailin-nemui
3acc72f842 reset colour at comma, like mIRC
Fixes #742 and #740
2017-11-15 16:35:25 +01:00
dequis
632b0ce5e6 Add parse_uint function to improve integer overflow handling
Originally found by oss-fuzz (issue 525) in get_ansi_color using ubsan.
After a lot of analysis I'm 99% sure this isn't security relevant so
it's fine to handle this publicly.

The fix is mainly adding a function that does it right and use it
everywhere. This is harder than it seems because the strtol() family of
functions doesn't have the friendliest of interfaces.

Aside from get_ansi_color(), there were other pieces of code that used
the same (out*10+(*in-'0')) pattern, like the parse_size() and
parse_time_interval() functions, which are mostly used for settings.
Those are interesting cases, since they multiply the parsed number
(resulting in more overflows) and they write to a signed integer
parameter (which can accidentally make the uints negative without UB)

Thanks to Pascal Cuoq for enlightening me about the undefined behavior
of parse_size (and, in particular, the implementation-defined behavior
of one of the WIP versions of this commit, where something like signed
integer overflow happened, but it was legal). Also for writing
tis-interpreter, which is better than ubsan to verify these things.
2017-05-18 00:21:11 -03:00
Nei
1b99299ed2 Merge branch 'percent_flag' into 'security'
fix %[

See merge request !5
2017-01-02 17:01:47 +00:00
ailin-nemui
7dc2f832c1 fix %[ 2016-12-20 16:41:57 +01:00
ailin-nemui
7b856d628b check for end of string in ansi 48 2016-12-15 18:01:26 +01:00
Alexander Færøy
6a6196eebe
Kill bell_beeps.
Fixes #524
2016-10-23 21:24:12 +02:00
ailin-nemui
295a4b77f0 Patches for heap corruption and missing bounds check
By Gabriel Campana and Adrien Guinet from Quarkslab.
2016-09-20 19:56:06 +02:00
Xavier G
21c07c0060 Leverage string_policy(). 2016-05-13 02:27:19 +02:00
Xavier G
b0afcc96db Rename advance() into string_advance(). 2016-05-13 01:52:37 +02:00
Xavier G
5c74a3bb88 Move advance() from fe-common/core to core. 2016-05-13 01:39:14 +02:00
ailin-nemui
7cc85b9427 keep track of address in text_dest for hilight purposes 2015-12-28 01:08:35 +01:00
Jari Matilainen
deb6ca1b1a Applied patch from fs#275 to make /hilight -mask -line work properly 2015-09-24 13:03:02 +02:00
Ailin Nemui
77a90effe3 Fix reset of attributes with ansi
reported by Christopher Ohlsson (dmnc)
2014-10-28 10:50:26 +01:00
Lukas Mai
0e294d5c2e add italics support; don't use standout for reverse 2014-07-07 00:32:07 +02:00
Ailin Nemui
96a292d40e Finish 256 colour support for Irssi
256 colour patch is cleaned up and the remaining cases are made work,
this includes especially Theme support, which was not implemented
before. Changes not related to colours were reverted again, making a
review of the two patches against master easier to follow.

As a byproduct of the Hex-colour code parser, the 24bit colours are
also implemented. Actually using them in the terminal is guarded by a
compile time switch (as well as a run time switch), as it breaks the
existing colour protocol and requires additional storage.

To make a seamless usage, down-conversion is provided for 8 and 16
colours.

Diverging from Tom's approach, the colour protocol is reverted back to
the original one. Unfortunately, the changes required in the Theme
engine will break the API.

For more details, please refer to the patch documentation at either
http://irssi-docs.wikispaces.com/Notes-256-Colour or
https://github.com/shabble/irssi-docs/wiki/Notes-256-Colour
2014-06-30 02:41:34 +02:00
Tom Feist
2d4edc5187 Initial implementation of 256 colour support for Irssi
This patch implements some 256 colour support for Irssi up from the
previous 16 colours. Initial parsing of the %x/%X format codes is
implemented and the parser accounts in advances the char* for
that.

The colour attributes are widened from 4 to 8 bit. The colour protocol
is changed to a new format. Some pointers to remaining work are
written in the comment in textbuffer.h.

Note that Irssi already does support requesting 256 colours from the
terminal in the original source code, so this part did not have to be
touched.
2014-06-30 00:54:16 +02:00
David Hill
0d4f13d20f Replace deprecated g_str[n]casecmp with g_ascii_str[n]cmp. 2014-06-10 12:06:19 -04:00
Emanuele Giaquinta
fd6bd4d829 Remove broken and unused format to add an indent function to a line.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4982 dbcabf3a-b0e7-0310-adc4-f8d773084564
2009-01-13 18:31:31 +00:00
Emanuele Giaquinta
b9cbba2ae2 Use window_get_theme.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4980 dbcabf3a-b0e7-0310-adc4-f8d773084564
2009-01-10 17:57:38 +00:00
Emanuele Giaquinta
ccb8e04a01 Fix r4920 change.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4927 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-11-29 08:31:42 +00:00
Emanuele Giaquinta
3f0743e749 Do not strip the comma in a mirc color if it is not followed by a digit, bug
#250.


git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4920 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-11-24 23:22:44 +00:00
Emanuele Giaquinta
621761cff3 Handle bold/blink attributes like other attributes rather than mapping them to
the eighth bit of the color. The formats KBGCRMYW and the mirc colors are now
mapped to colors 8-15. fe-text translates colors 8-15 to bold/blink+0-7 if the
terminal supports only 8 colors.


git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4909 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-11-15 21:51:07 +00:00
Emanuele Giaquinta
c403b70de4 Remove broken by design /set translation.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4698 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-02-02 18:36:57 +00:00
Emanuele Giaquinta
036b1d3300 Reset colors and attributes on newline.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4694 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-02-01 16:02:56 +00:00
Emanuele Giaquinta
5bcafebbd4 Assume width 1 for control characters in places where a non-negative width is
expected.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4535 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-31 13:56:35 +00:00
Emanuele Giaquinta
a8741bd799 Replace utf8_width with Markus Kuhn's wcwidth.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4518 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-25 21:56:30 +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
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
c536d1f19c Fix format_real_length to return the correct length when the input string
includes a trailing wide char.
Change statusbar_item_default_handler to compute padding also when
item->size < item->min_size, needed after the fix to format_real_length.
Patch by Yi-Hsuan Hsin, bug #452.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4416 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-02-14 10:59:27 +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
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
226a567562 Recode patch by decadix/senneth
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3283 dbcabf3a-b0e7-0310-adc4-f8d773084564
2004-08-20 00:03:40 +00:00
Timo Sirainen
f3ab905f7e reversed utf8 change, it's glib2 specific and I don't yet want to drop support for 1.x
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3216 dbcabf3a-b0e7-0310-adc4-f8d773084564
2004-01-24 22:05:51 +00:00
Timo Sirainen
713e45a977 UTF-8 support to format_get_length() and format_real_length(). patch by
Jean-Yves Lefort


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3209 dbcabf3a-b0e7-0310-adc4-f8d773084564
2004-01-19 19:13:15 +00:00
Timo Sirainen
ae7f177fb0 Wrong parameters given to "gui print text" signal with indent function
processing: remote crash for architechtures which require memory
alignmentation (non-x86)


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3190 dbcabf3a-b0e7-0310-adc4-f8d773084564
2003-12-10 22:47:35 +00:00
Timo Sirainen
bd6fe052bc Added time, size and level setting types. Breaks some settings - I'll add
automatic converter to these settings later. Meanwhile you CVS users can
fix your config files yourself :)

Time settings allow using "days", "hours", "minutes", "seconds" and
"milliseconds" or several of their abbreviations. For example "5d 4h
5msecs".

Size settings allow using "gbytes", "mbytes", "kbytes" and "bytes" or their
abbrevations. For example "5MB".

Level settings are currently handled pretty much the way they were before.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3080 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-12-28 17:54:13 +00:00