Commit graph

41 commits

Author SHA1 Message Date
Stephen Oberholtzer
bfa217b283 Fix segfault when 'script error' handlers fail
Add logic to detect errors in 'script error' handlers, and prevent
them from causing infinite recursion that crashes the entire program.
2017-03-03 19:55:18 -05:00
Tom Feist
9559a8ead9 Allow Irssi::signal_remove to work properly with coderefs 2016-07-12 12:42:15 +02:00
dequis
f14199d9c1 Change all strcmp() to g_strcmp0() to handle nulls gracefully
Just a string replacement (but i did check every one of them)

    sed -i 's/strcmp(/g_strcmp0(/g' **/*.c
2015-04-07 22:41:05 -03:00
Michael Vetter
51239925ec source cleanup: remove trailing whitespaces 2014-09-11 19:10:33 +02:00
Alexander Færøy
aaa0cb6e03 Merge pull request #52 from dgl/stack-cleanup
Correct use of perl stack macros
2014-06-29 14:27:12 +02:00
Alexander Færøy
b8c2915d79 Merge pull request #59 from ailin-nemui/perl-pl-na
get rid of PL_na
2014-06-27 14:31:04 +02:00
David Leadbeater
c5d81c598d Correct use of perl stack macros
Further to pull #49 this is the result of an audit of the use of perl
stack macros. There were several cases where PUTBACK was being called
where the stack pointer could be out-of-date.

Also some misc. cleanup where the macros were used needlessly.
2014-06-27 11:20:48 +01:00
Ailin Nemui
f58a461c54 cleanup char* casts and replace one useless SvPV with SvPV_nolen 2014-06-25 03:17:03 +02:00
David Leadbeater
43df6e424e Define PERL_NO_GET_CONTEXT in all perl source files
This removes the calls to Perl_get_context() that get automatically
added to XS code for ancient source code compatibility reasons.

The result is about a ~60K size reduction in the binary (based on
comparing two 64-bit stripped irssi binaries compiled
--with-perl-staticlib).
2014-06-24 20:20:27 +01:00
Lukas Mai
7dbb8efdde get rid of PL_na 2014-06-24 16:45:55 +02:00
Emanuele Giaquinta
7982a86420 Fix undefined behavior due to modifying PL_na twice between sequence points.
Patch by Lukas Mai.


git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4960 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-12-09 18:16:49 +00:00
Emanuele Giaquinta
8c64738cdc Add perl_signal_args_to_c() to convert signal parameters from Perl to C values,
and make Irssi::signal_emit/Irssi::signal_continue use it. Also make
perl_call_signal() turn NULLs into undef, so we can recover them in
perl_signal_args_to_c(), which is its inverse operation.
Patch by Lukas Mai.


git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4953 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-12-08 16:06:11 +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
Timo Sirainen
6230c055f2 Added Irssi::signal_register() to dynamically register new signals.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3045 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-12-04 22:17:07 +00:00
Timo Sirainen
c764853132 Cast pointers to IVs instead of using GPOINTER_TO_INT() which casts them to
ints. Hopefully fixes 64bit architectures.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2978 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-10-28 01:49:14 +00:00
Timo Sirainen
c7320514aa fixes for new signaling code.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2691 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-04-16 18:11:06 +00:00
Timo Sirainen
8b9c4823bf Rewritten signal handling code - it wasn't supposed to come before 0.9 irssi
but it doesn't break much things and is needed for Qt port :)


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2682 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-04-15 13:59:09 +00:00
Timo Sirainen
7131ceb909 g_strdup() the error message before emitting "script error" signal, since
perl scripting might be executed during that signal and it clears the error
message.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2302 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-01-10 17:36:41 +00:00
Timo Sirainen
d723a5b64b command_bind_first() and command_bind_last() didn't work properly.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2292 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-01-03 23:25:18 +00:00
Timo Sirainen
617123b5d4 I always forget Perl 5.004 doesn't have PL_na .. so, now I've declared for
5.004, and changed all STRLEN n_a code to use PL_na instead.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2238 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-12-11 16:44:53 +00:00
Timo Sirainen
31dcd8258f Irssi::signal_add(), Irssi::timeout_add(), Irssi::input_add() and their
variants now also allow use of code references.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2199 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-12-06 17:17:40 +00:00
Timo Sirainen
6976bec3d9 Allow using Irssi::signal_add('command ...', ..) so irssi won't crash when
the script is unloaded.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2167 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-11-29 22:12:28 +00:00
Timo Sirainen
3819189ef4 Irssi::Irc::Dcc::* is now correctly blessed instead of using Irssi::Irc::Dcc
always. did s/irssi_bless/iobject_bless/, added simple_iobject_bless which
DCC uses.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2092 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-11-19 19:36:21 +00:00
Timo Sirainen
bdf5bf9785 Removed some unused code.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1910 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-10-24 22:18:39 +00:00
Timo Sirainen
8104317897 perl_signal_remove() didn't work.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1801 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-09-20 14:21:46 +00:00
Timo Sirainen
2aaed8dc0b Irssi crashed if script died in a signal handler.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1730 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-08-08 22:43:00 +00:00
Timo Sirainen
b80d4e62ab /SCRIPT RESET didn't work properly (start/stop functions were called in
wrong order). Added a few extra deinits.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1712 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-08-07 15:25:41 +00:00
Timo Sirainen
82034efb11 Script name is printed now correctly if there's an error in
timeouts/signals.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1688 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-07-30 12:56:57 +00:00
Timo Sirainen
6c2f9c685a --enable-perl* -> --with-perl*. Added a new libfe_perl which handles /SCRIPT
commands. /RUN -> /SCRIPT LOAD, /PERLFLUSH -> /SCRIPT FLUSH, /PERL ->
/SCRIPT EXEC. Added /SCRIPT UNLOAD, /SCRIPT LIST. Lots of cleanups.

filename_complete() has extra argument for "default directory" which is
searched if no path is given when completing.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1680 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-07-29 09:17:53 +00:00
Timo Sirainen
af86920d3f bugfix
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1676 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-07-29 04:03:58 +00:00
Timo Sirainen
338e58cbad Don't crash when trying to bless NULLs
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1645 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-07-24 22:21:48 +00:00
Timo Sirainen
0d3b5c729f Added Irssi::command_bind_first() and Irssi::command_bind_last()
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1638 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-07-16 20:03:36 +00:00
Timo Sirainen
fdb57e148c "complete word" signal works now with perl and it's possible to manipulate
the completion list.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1542 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-06-08 22:27:06 +00:00
Timo Sirainen
5f6d953602 Irssi::command_runsub() - patch by fuchs
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1519 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-05-30 08:58:48 +00:00
Timo Sirainen
21ce8803d6 some perl fixes. NICK_REC is also now "iobject"..
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1358 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-03-07 12:09:38 +00:00
Timo Sirainen
513e140bce Irssi::command_bind(): Don't run the command twice. Log updated for
log_write_rec()


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1236 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-02-17 12:23:18 +00:00
Timo Sirainen
ebdaa110f1 bugfixes
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1101 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-01-10 21:12:39 +00:00
Timo Sirainen
14dbcd00bf "return 1" doesn't anymore stop signals in perl scripts. Fixed
Irssi::signal_stop() to properly stop the signal from going to other
perl scripts.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1086 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-01-07 08:23:06 +00:00
Timo Sirainen
fe8710ac41 Unbinding commands didn't work properly
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1058 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-01-04 09:45:46 +00:00
Timo Sirainen
1e4c658a18 Removed the "signal" and "last signal" signals. Changed perl's
signaling system to work without them, it should now work faster and
better.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1053 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-01-03 07:34:12 +00:00