53 Commits

Author SHA1 Message Date
Alexander Færøy
cce0ff80a2 Merge pull request #49 from dgl/stackem
Move PUTBACK to within the scope which uses the stack
2014-06-29 14:24:20 +02:00
Alexander Færøy
113f1724d7 Merge pull request #44 from dajohi/g_basename
Replace deprecated g_basename with g_path_get_basename.
2014-06-27 14:41:54 +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
211422cbe8 Switch to using G_DISCARD for call_pv
PUTBACK was being called even for the error path which didn't use the
stack. Emitting the "script error" signal can involve running Perl code
(Irssi:core::destroy) therefore the stack can be reallocated. This
can result in the perl stack being corrupted because the local stack
pointer is out of date (although as it's use of freed memory the crash
is not always instant).
2014-06-27 11:08:01 +01: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
David Hill
9d6cd87b0f Replace deprecated g_basename with g_path_get_basename. 2014-06-22 20:39:35 -04:00
Emanuele Giaquinta
fadb9f9edf Fix r4998 change, declare 'environ'.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5058 dbcabf3a-b0e7-0310-adc4-f8d773084564
2009-04-05 18:04:59 +00:00
Alexander Færøy
2fffcf5a77 Code Cleanup:
Use g_string_printf() instead of g_string_sprintf() (which is considered deprecated.)



git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5004 dbcabf3a-b0e7-0310-adc4-f8d773084564
2009-02-08 17:57:19 +00:00
Emanuele Giaquinta
b12bd857a5 Call PERL_SYS_INIT3() and PERL_SYS_TERM() as documented in perlembed(1).
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4998 dbcabf3a-b0e7-0310-adc4-f8d773084564
2009-01-23 17:57:49 +00:00
Emanuele Giaquinta
822e6caee8 Revert r4871, it breaks /script reset.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4992 dbcabf3a-b0e7-0310-adc4-f8d773084564
2009-01-17 22:28:47 +00:00
Emanuele Giaquinta
2129c4b229 Properly unload the original script when using /script load to reload it.
bug #525, patch by Lukas Mai.


git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4991 dbcabf3a-b0e7-0310-adc4-f8d773084564
2009-01-16 22:02:02 +00:00
Jilles Tjoelker
d993ce7b06 Use PERL_SYS_INIT3 with the correct pointer type for argv.
This fixes perl crashes on startup on some machines.


git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4989 dbcabf3a-b0e7-0310-adc4-f8d773084564
2009-01-15 22:21:31 +00:00
Jilles Tjoelker
84e1e871e7 Fix crash on startup if perl is compiled in.
bug #618


git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4872 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-08-23 16:05:47 +00:00
Emanuele Giaquinta
47f129e0a5 Call PERL_SYS_INIT3() and PERL_SYS_TERM() as documented in perlembed(1), patch
by Gerfried Fuchs (debian bug #495059).


git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4871 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-08-22 11:54:32 +00:00
Emanuele Giaquinta
97da8b64f4 Set PL_perl_destruct_level to 1 before calling perl_destruct, without
it /script reset may cause irssi to crash.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4817 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-05-13 14:27:03 +00:00
Emanuele Giaquinta
4fb888ce80 Remove support for perl 5.004 and older.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4706 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-02-05 01:01:06 +00:00
Emanuele Giaquinta
ee59980363 Remove unneeded include.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4697 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-02-02 18:05:05 +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
b8380772e2 Remove broken code that prevents unloading of a script in some cases.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4473 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-03 08:42:33 +00:00
Wouter Coekaerts
b25c8cf1d1 Don't crash on /quit with scripts causing and catching signals during UNLOAD (thanks senneth)
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4340 dbcabf3a-b0e7-0310-adc4-f8d773084564
2006-09-12 09:37:18 +00:00
Valentin Batz
19e800cf23 Fixed memory leaks when destroying a channel, when loading nonexisten scripts and in topics, patch by Toby Peterson
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3707 dbcabf3a-b0e7-0310-adc4-f8d773084564
2005-02-06 21:31:58 +00:00
Timo Sirainen
9c7360ad46 don't unload libraries when deinitializing. leaks some more memory, but fixes some crashes.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3117 dbcabf3a-b0e7-0310-adc4-f8d773084564
2003-06-27 10:53:32 +00:00
Timo Sirainen
f31b59b48b support for threaded perl. patch by mls@suse.de
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2930 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-09-19 14:30:10 +00:00
Timo Sirainen
4bb26bb951 If script returns 0 while it's being loaded, it's terminated without any
error message.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2885 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-08-25 16:04:11 +00:00
Timo Sirainen
c9f6f04079 destruct level isn't touched anymore, it crashes irssi with a few people..
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2641 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-03-24 16:35:20 +00:00
Timo Sirainen
d322b86c3d Removed some backwards compatibility code between CVS versions that broke
/SET use_perl_lib


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2367 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-02-01 23:14:00 +00:00
Timo Sirainen
f4897860b5 toupper(), tolower(), isspace(), is..etc..() aren't safe with chars in some
systems, use our own is_...() functions now instead.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2348 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-01-27 20:45:59 +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
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
cb0c661069 a bit more proper initializing of Irssi package..
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2180 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-12-03 14:40:54 +00:00
Timo Sirainen
294c94573a removed unused variable
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2178 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-12-03 13:05:46 +00:00
Timo Sirainen
ba445fe37e /SCRIPT LOAD modifies the script name so that all non-alphanumeric
characters are translated to '_' char .. now this behaviour is done also
when /SCRIPT UNLOAD is done, so people don't get confused why their "test-1"
script can't be unloaded.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2145 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-11-25 16:17:44 +00:00
Timo Sirainen
08162d83bf Settings of perl scripts are now stored in "perl/core/scripts" instead of
old "perl/core". The settings are automatically moved to the
perl/core/scripts for now - this will be removed before 0.7.99 comes out.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2101 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-11-19 21:26:30 +00:00
Timo Sirainen
51db872da0 /SCRIPT UNLOAD didn't destroy the perl package from memory. Also the scripts
weren't destroyed when error occured in them.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2053 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-11-18 16:16:13 +00:00
Timo Sirainen
ea03650b3f Updated perl API version. Fixed irssi to behave better if the API doesn't
match (doesn't crash).


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1985 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-11-11 22:39:56 +00:00
Timo Sirainen
c5c2242ee3 Boot dynaloader too even if perl libraries are compiled statically in irssi.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1917 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-10-25 10:00:33 +00:00
Timo Sirainen
a2289ab8ae typofix - s/per/perl/
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1916 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-10-24 23:36:06 +00:00
Timo Sirainen
feff2b1adc bugfix
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1915 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-10-24 23:29:48 +00:00
Timo Sirainen
ddf1b27c04 Added --with-perl-staticlib option to configure. If used, irssi's perl
libraries are compiled statically into irssi binary.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1914 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-10-24 23:17:27 +00:00
Timo Sirainen
1c9a8ab897 /SET perl_use_lib setting to specify the path for irssi's perl libraries.
Default should work usually, but if you for some reason want to use different
then change this. May contain multiple paths separated with space.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1905 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-10-24 13:20:26 +00:00
Timo Sirainen
62c6a35aeb Added eval { } around the DynaLoader::dl_unload_file() calls to get rid of
the errors it's printing with perl < 5.6.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1900 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-10-23 20:37:53 +00:00
Timo Sirainen
ae1b5b0d50 added irssi_init_finished variable to core.h which is TRUE after "irssi init
finished" signal is sent.

Perl scripts aren't now autoloaded until irssi_init_finished is TRUE (fixes
the crash at startup).


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1879 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-10-21 13:22:28 +00:00
Timo Sirainen
76c6e9ab83 Dependencies finally work correctly in perl libraries (they're each compiled
separately now). Added statusbar code to available to perl, it's now
possible to create new statusbar items with perl scripts.

statusbar_items_redraw(char *name) can now be used to easily redraw all
named statusbar items in screen.

Probably several other changes I've already forgotten :)


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1861 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-10-20 19:52:07 +00:00
Timo Sirainen
a5b32b70a7 Added API version check between perl module and perl libs.
perl_scripts_deinit() now destroys all dynamically loaded libraries (Irssi,
Irssi::Irc, Irssi::UI too) so /UNLOAD perl should now release more memory,
this also makes /unload perl, /load perl work again.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1859 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-10-20 13:19:25 +00:00
Timo Sirainen
803d805016 Module loading updates - /LOAD shows now also the statically loaded modules.
You can't /LOAD the same module twice. Syntax changed to /LOAD <module>
[<submodule>], /UNLOAD <module> [<submodule>].

NOTE: all modules now need to call register_module() in their init()
function.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1748 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-08-14 00:41:59 +00:00
Timo Sirainen
be601764ae Irssi crashed if loading script failed.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1713 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-08-07 21:03:26 +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